{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(61184, 15)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "biz_f = open('data/yelp/v6/yelp_dataset_challenge_academic_dataset/yelp_academic_dataset_business.json')\n",
    "biz_df = pd.DataFrame([json.loads(x) for x in biz_f.readlines()])\n",
    "biz_f.close()\n",
    "biz_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>attributes</th>\n",
       "      <th>business_id</th>\n",
       "      <th>categories</th>\n",
       "      <th>city</th>\n",
       "      <th>full_address</th>\n",
       "      <th>hours</th>\n",
       "      <th>latitude</th>\n",
       "      <th>longitude</th>\n",
       "      <th>name</th>\n",
       "      <th>neighborhoods</th>\n",
       "      <th>open</th>\n",
       "      <th>review_count</th>\n",
       "      <th>stars</th>\n",
       "      <th>state</th>\n",
       "      <th>type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>{'By Appointment Only': True}</td>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>[Doctors, Health &amp; Medical]</td>\n",
       "      <td>Phoenix</td>\n",
       "      <td>4840 E Indian School Rd\\nSte 101\\nPhoenix, AZ ...</td>\n",
       "      <td>{'Tuesday': {'close': '17:00', 'open': '08:00'...</td>\n",
       "      <td>33.499313</td>\n",
       "      <td>-111.983758</td>\n",
       "      <td>Eric Goldberg, MD</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>9</td>\n",
       "      <td>3.5</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>{'Happy Hour': True, 'Outdoor Seating': False,...</td>\n",
       "      <td>UsFtqoBl7naz8AVUBZMjQQ</td>\n",
       "      <td>[Nightlife]</td>\n",
       "      <td>Dravosburg</td>\n",
       "      <td>202 McClure St\\nDravosburg, PA 15034</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.350519</td>\n",
       "      <td>-79.886930</td>\n",
       "      <td>Clancy's Pub</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>{'Good for Kids': True}</td>\n",
       "      <td>cE27W9VPgO88Qxe4ol6y_g</td>\n",
       "      <td>[Active Life, Mini Golf, Golf]</td>\n",
       "      <td>Bethel Park</td>\n",
       "      <td>1530 Hamilton Rd\\nBethel Park, PA 15234</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.356896</td>\n",
       "      <td>-80.015910</td>\n",
       "      <td>Cool Springs Golf Center</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>{}</td>\n",
       "      <td>HZdLhv6COCleJMo7nPl-RA</td>\n",
       "      <td>[Shopping, Home Services, Internet Service Pro...</td>\n",
       "      <td>Pittsburgh</td>\n",
       "      <td>301 S Hills Vlg\\nPittsburgh, PA 15241</td>\n",
       "      <td>{'Saturday': {'close': '21:00', 'open': '10:00...</td>\n",
       "      <td>40.357620</td>\n",
       "      <td>-80.059980</td>\n",
       "      <td>Verizon Wireless</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Ambience': {'t...</td>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>[Bars, American (New), Nightlife, Lounges, Res...</td>\n",
       "      <td>Braddock</td>\n",
       "      <td>414 Hawkins Ave\\nBraddock, PA 15104</td>\n",
       "      <td>{'Saturday': {'close': '16:00', 'open': '10:00...</td>\n",
       "      <td>40.408735</td>\n",
       "      <td>-79.866351</td>\n",
       "      <td>Emil's Lounge</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>11</td>\n",
       "      <td>4.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Ambience': {'t...</td>\n",
       "      <td>KayYbHCt-RkbGcPdGOThNg</td>\n",
       "      <td>[Bars, American (Traditional), Nightlife, Rest...</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>141 Hawthorne St\\nGreentree\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.415517</td>\n",
       "      <td>-80.067534</td>\n",
       "      <td>Alexion's Bar &amp; Grill</td>\n",
       "      <td>[Greentree]</td>\n",
       "      <td>True</td>\n",
       "      <td>15</td>\n",
       "      <td>4.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>{}</td>\n",
       "      <td>b12U9TFESStdy7CsTtcOeg</td>\n",
       "      <td>[Auto Repair, Automotive]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>718 Hope Hollow Rd\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.394588</td>\n",
       "      <td>-80.084454</td>\n",
       "      <td>Flynn's E W Tire Service Center</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>1.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>{'Good for Kids': True}</td>\n",
       "      <td>Sktj1eHQFuVa-M4bgnEh8g</td>\n",
       "      <td>[Active Life, Mini Golf]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>920 Forsythe Rd\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.405404</td>\n",
       "      <td>-80.076267</td>\n",
       "      <td>Forsythe Miniature Golf &amp; Snacks</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>4.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>{}</td>\n",
       "      <td>3ZVKmuK2l7uXPE6lXY4Dbg</td>\n",
       "      <td>[Home Services, Contractors]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>8 Logan St\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.406324</td>\n",
       "      <td>-80.090357</td>\n",
       "      <td>Quaker State Construction</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>2.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>{'Good for Kids': True, 'Wheelchair Accessible...</td>\n",
       "      <td>wJr6kSA5dchdgOdwH6dZ2w</td>\n",
       "      <td>[Burgers, Breakfast &amp; Brunch, American (Tradit...</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>2100 Washington Pike\\nCarnegie, PA 15106</td>\n",
       "      <td>{'Saturday': {'close': '02:00', 'open': '08:00...</td>\n",
       "      <td>40.387732</td>\n",
       "      <td>-80.092874</td>\n",
       "      <td>Kings Family Restaurant</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>8</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Parking': {'va...</td>\n",
       "      <td>yXuao0pFz1AxB21vJjDf5w</td>\n",
       "      <td>[Food, Grocery]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>2100 Washington Pike\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.387732</td>\n",
       "      <td>-80.092874</td>\n",
       "      <td>Shop N'save</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>{'Ambience': {'trendy': False, 'divey': False,...</td>\n",
       "      <td>fNGIbpazjTRdXgwRY_NIXA</td>\n",
       "      <td>[Bars, American (Traditional), Nightlife, Loun...</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>1201 Washington Ave\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.396469</td>\n",
       "      <td>-80.084942</td>\n",
       "      <td>Rocky's Lounge</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>4.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>{'Ambience': {'trendy': False, 'divey': True, ...</td>\n",
       "      <td>b9WZJp5L1RZr4F1nxclOoQ</td>\n",
       "      <td>[Breakfast &amp; Brunch, Restaurants]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>1073 Washington Ave\\nCarnegie, PA 15106</td>\n",
       "      <td>{'Saturday': {'close': '12:30', 'open': '06:00...</td>\n",
       "      <td>40.396744</td>\n",
       "      <td>-80.084800</td>\n",
       "      <td>Gab &amp; Eat</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>38</td>\n",
       "      <td>4.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>{'Good for Kids': True, 'Take-out': True, 'Wai...</td>\n",
       "      <td>zaXDakTd3RXyOa7sMrUE1g</td>\n",
       "      <td>[Cafes, Restaurants]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>202 3rd Ave\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.404638</td>\n",
       "      <td>-80.089985</td>\n",
       "      <td>Barb's Country Junction Cafe</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>4.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Price Range': ...</td>\n",
       "      <td>zgy27FSnvwdINfk5cXBIyQ</td>\n",
       "      <td>[Hotels &amp; Travel, Event Planning &amp; Services, H...</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>520 North Bell Avenue\\nCarnegie\\nCarnegie, PA ...</td>\n",
       "      <td>{'Saturday': {'close': '00:00', 'open': '00:00...</td>\n",
       "      <td>40.417419</td>\n",
       "      <td>-80.088557</td>\n",
       "      <td>Extended Stay America - Pittsburgh - Carnegie</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>4.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>{'Good for Kids': False, 'Take-out': True, 'Wa...</td>\n",
       "      <td>WETE_LykpcnrC1sFcQ5EGg</td>\n",
       "      <td>[Pubs, Irish, Nightlife, Bars, Restaurants]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>215 E Main St\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.408670</td>\n",
       "      <td>-80.085279</td>\n",
       "      <td>Paddy's Pour House</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>False</td>\n",
       "      <td>6</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>{}</td>\n",
       "      <td>6o3RK6rTcN3nw-j-r2nQmA</td>\n",
       "      <td>[]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>231 E Main St\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.408568</td>\n",
       "      <td>-80.084992</td>\n",
       "      <td>Porto Fino Pizzaria &amp; Gyro</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>2.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>{'Accepts Credit Cards': False}</td>\n",
       "      <td>woOVJ0Z2f6XNCDntHA3b_g</td>\n",
       "      <td>[Local Services, Sewing &amp; Alterations]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>117 E Mall Plz\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{'Saturday': {'close': '18:30', 'open': '08:30...</td>\n",
       "      <td>40.407889</td>\n",
       "      <td>-80.086060</td>\n",
       "      <td>Alteration World</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>5.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>{'Caters': False, 'Wheelchair Accessible': Tru...</td>\n",
       "      <td>rv7CY8G_XibTx82YhuqQRw</td>\n",
       "      <td>[Restaurants]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>Raceway Plz\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.386891</td>\n",
       "      <td>-80.093704</td>\n",
       "      <td>Long John Silver's</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>{'By Appointment Only': True}</td>\n",
       "      <td>e_U_FnpdKVgNb4mUN2cU_Q</td>\n",
       "      <td>[Health &amp; Medical, Dentists, General Dentistry]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>2323 Greentree Rd\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.390760</td>\n",
       "      <td>-80.078657</td>\n",
       "      <td>Weinberg Lisa, DMD</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>6</td>\n",
       "      <td>2.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>{'Attire': 'casual', 'Good For Groups': False,...</td>\n",
       "      <td>SQ0j7bgSTazkVQlF5AnqyQ</td>\n",
       "      <td>[Chinese, Restaurants]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>214 E Main St\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.408343</td>\n",
       "      <td>-80.084861</td>\n",
       "      <td>Don Don Chinese Restaurant</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>8</td>\n",
       "      <td>2.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>{'Caters': False, 'Good for Kids': True, 'Ambi...</td>\n",
       "      <td>wqu7ILomIOPSduRwoWp4AQ</td>\n",
       "      <td>[Breakfast &amp; Brunch, American (Traditional), R...</td>\n",
       "      <td>Pittsburgh</td>\n",
       "      <td>2180 Greentree Rd\\nPittsburgh, PA 15220</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.391255</td>\n",
       "      <td>-80.073426</td>\n",
       "      <td>Denny's</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>7</td>\n",
       "      <td>4.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>{}</td>\n",
       "      <td>1u2NauOy8xDj7aFQET680A</td>\n",
       "      <td>[Active Life, Gyms, Trainers, Fitness &amp; Instru...</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>100 Roessler Rd\\nCarnegie, PA 15106</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.394305</td>\n",
       "      <td>-80.060154</td>\n",
       "      <td>Amerifit</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>{'Caters': True, 'Wheelchair Accessible': True...</td>\n",
       "      <td>P1fJb2WQ1mXoiudj8UE44w</td>\n",
       "      <td>[Restaurants, Italian]</td>\n",
       "      <td>Carnegie</td>\n",
       "      <td>200 E Main St\\nCarnegie\\nCarnegie, PA 15106</td>\n",
       "      <td>{'Saturday': {'close': '23:00', 'open': '11:00...</td>\n",
       "      <td>40.408257</td>\n",
       "      <td>-80.085458</td>\n",
       "      <td>Papa J's</td>\n",
       "      <td>[Carnegie]</td>\n",
       "      <td>True</td>\n",
       "      <td>46</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>{'By Appointment Only': True}</td>\n",
       "      <td>xxWFOD46ubTSF3nPRM19BA</td>\n",
       "      <td>[Health &amp; Medical, Periodontists, Dentists, Or...</td>\n",
       "      <td>Pittsburgh</td>\n",
       "      <td>1730 Settlers Ridge Center Dr\\nPittsburgh, PA ...</td>\n",
       "      <td>{'Saturday': {'close': '15:00', 'open': '08:00...</td>\n",
       "      <td>40.470457</td>\n",
       "      <td>-80.088959</td>\n",
       "      <td>Emmert Dental Associates</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>1.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>{'Caters': False, 'Good for Kids': True, 'Ambi...</td>\n",
       "      <td>PK6aSizckHFWk8i0oxt5DA</td>\n",
       "      <td>[Burgers, Fast Food, Restaurants]</td>\n",
       "      <td>Homestead</td>\n",
       "      <td>400 Waterfront Dr E\\nHomestead\\nHomestead, PA ...</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.412086</td>\n",
       "      <td>-79.910032</td>\n",
       "      <td>McDonald's</td>\n",
       "      <td>[Homestead]</td>\n",
       "      <td>True</td>\n",
       "      <td>5</td>\n",
       "      <td>2.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>{'Attire': 'casual', 'Parking': {'validated': ...</td>\n",
       "      <td>sRqB6flj3GtTZIZJQxf_oA</td>\n",
       "      <td>[Restaurants]</td>\n",
       "      <td>Homestead</td>\n",
       "      <td>285 Waterfront Dr E\\nHomestead\\nHomestead, PA ...</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.411692</td>\n",
       "      <td>-79.912343</td>\n",
       "      <td>Eat'n Park Hospitality Group</td>\n",
       "      <td>[Homestead]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>2.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>{'Wheelchair Accessible': True, 'Price Range':...</td>\n",
       "      <td>3gmBc0qN_LtGbZAjTtHWZg</td>\n",
       "      <td>[Food, Coffee &amp; Tea]</td>\n",
       "      <td>Homestead</td>\n",
       "      <td>270 W Bridge St\\nHomestead\\nHomestead, PA 15120</td>\n",
       "      <td>{}</td>\n",
       "      <td>40.407091</td>\n",
       "      <td>-79.916958</td>\n",
       "      <td>Starbucks</td>\n",
       "      <td>[Homestead]</td>\n",
       "      <td>True</td>\n",
       "      <td>16</td>\n",
       "      <td>3.5</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Parking': {'va...</td>\n",
       "      <td>yHTLTr-QN-loO_7XoxS8qg</td>\n",
       "      <td>[Arts &amp; Crafts, Shopping, Knitting Supplies, H...</td>\n",
       "      <td>Munhall</td>\n",
       "      <td>660 Waterfront Dr E\\nHomestead\\nMunhall, PA 15120</td>\n",
       "      <td>{'Saturday': {'close': '22:00', 'open': '09:00...</td>\n",
       "      <td>40.414064</td>\n",
       "      <td>-79.903778</td>\n",
       "      <td>Michaels</td>\n",
       "      <td>[Homestead]</td>\n",
       "      <td>True</td>\n",
       "      <td>8</td>\n",
       "      <td>3.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>{'Caters': False, 'Wheelchair Accessible': Tru...</td>\n",
       "      <td>6ilJq_05xRgek_8qUp36-g</td>\n",
       "      <td>[Burgers, Fast Food, Restaurants]</td>\n",
       "      <td>Munhall</td>\n",
       "      <td>650 E  Waterfront Dr\\nHomestead\\nMunhall, PA 1...</td>\n",
       "      <td>{'Saturday': {'close': '00:00', 'open': '00:00...</td>\n",
       "      <td>40.413496</td>\n",
       "      <td>-79.904456</td>\n",
       "      <td>Steak 'n Shake</td>\n",
       "      <td>[Homestead]</td>\n",
       "      <td>True</td>\n",
       "      <td>36</td>\n",
       "      <td>2.0</td>\n",
       "      <td>PA</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61154</th>\n",
       "      <td>{'Good for Kids': True}</td>\n",
       "      <td>y7G8BTjt3ajGRih3d8SBbQ</td>\n",
       "      <td>[Arts &amp; Entertainment, Performing Arts]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>V Theater\\n3663 Las Vegas Blvd\\nThe Strip\\nLas...</td>\n",
       "      <td>{}</td>\n",
       "      <td>36.110775</td>\n",
       "      <td>-115.172186</td>\n",
       "      <td>Piano Man</td>\n",
       "      <td>[The Strip]</td>\n",
       "      <td>True</td>\n",
       "      <td>6</td>\n",
       "      <td>4.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61155</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Parking': {'va...</td>\n",
       "      <td>UTrs6gV6Y49JTMBif6ujqQ</td>\n",
       "      <td>[Health Markets, Food, Specialty Food]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>11710 W Charleston Blvd\\nSte 120\\nSummerlin\\nL...</td>\n",
       "      <td>{'Saturday': {'close': '18:30', 'open': '09:30...</td>\n",
       "      <td>36.159345</td>\n",
       "      <td>-115.350625</td>\n",
       "      <td>Nutrishop Las Vegas</td>\n",
       "      <td>[Summerlin]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>5.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61156</th>\n",
       "      <td>{'Good For Groups': True, 'Takes Reservations'...</td>\n",
       "      <td>pesdw9r5ZaAIghcff4I0iw</td>\n",
       "      <td>[Food, Coffee &amp; Tea]</td>\n",
       "      <td>Scottsdale</td>\n",
       "      <td>6235 E Bell Rd\\nScottsdale, AZ 85254</td>\n",
       "      <td>{}</td>\n",
       "      <td>33.639958</td>\n",
       "      <td>-111.945244</td>\n",
       "      <td>Dutch Bros Coffee</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>7</td>\n",
       "      <td>4.5</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61157</th>\n",
       "      <td>{'Caters': False, 'Drive-Thru': True, 'Deliver...</td>\n",
       "      <td>AjZLGVy8GgpdCCXCtCXV_A</td>\n",
       "      <td>[Burgers, American (Traditional), Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>4885 Jones Blvd\\nLas Vegas, NV 89103</td>\n",
       "      <td>{'Saturday': {'close': '00:00', 'open': '12:00...</td>\n",
       "      <td>36.100254</td>\n",
       "      <td>-115.225779</td>\n",
       "      <td>Checkers</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>11</td>\n",
       "      <td>2.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61158</th>\n",
       "      <td>{}</td>\n",
       "      <td>9d9gHcDJ9NnNTjOCENv7Gw</td>\n",
       "      <td>[Marketing, Professional Services]</td>\n",
       "      <td>Phoenix</td>\n",
       "      <td>2828 N Central Ave\\nSte 741\\nPhoenix, AZ 85004</td>\n",
       "      <td>{'Tuesday': {'close': '16:00', 'open': '07:00'...</td>\n",
       "      <td>33.479952</td>\n",
       "      <td>-112.074518</td>\n",
       "      <td>HeartHook</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>5.0</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61159</th>\n",
       "      <td>{'Caters': True, 'Good for Kids': True, 'Ambie...</td>\n",
       "      <td>EWdLB__imFSZ9v8EOJBqAQ</td>\n",
       "      <td>[Bakeries, Food, Soup, Salad, Restaurants]</td>\n",
       "      <td>Phoenix</td>\n",
       "      <td>10430 N 28th Dr\\nPhoenix, AZ 85051</td>\n",
       "      <td>{'Saturday': {'close': '22:00', 'open': '09:00...</td>\n",
       "      <td>33.580500</td>\n",
       "      <td>-112.122366</td>\n",
       "      <td>Panera Bread</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>9</td>\n",
       "      <td>3.5</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61160</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Parking': {'va...</td>\n",
       "      <td>YHuuPfxEPRokVbf4wVUscg</td>\n",
       "      <td>[Food, Donuts]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>9435 W Tropicana Ave\\nSte 103\\nSpring Valley\\n...</td>\n",
       "      <td>{'Saturday': {'close': '15:00', 'open': '05:00...</td>\n",
       "      <td>36.099680</td>\n",
       "      <td>-115.298539</td>\n",
       "      <td>Ace Donuts</td>\n",
       "      <td>[Spring Valley]</td>\n",
       "      <td>True</td>\n",
       "      <td>20</td>\n",
       "      <td>4.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61161</th>\n",
       "      <td>{'Good for Kids': True, 'Ambience': {'trendy':...</td>\n",
       "      <td>NETaLUX6PH9lxLCwzNgq1Q</td>\n",
       "      <td>[Sushi Bars, Diners, Restaurants]</td>\n",
       "      <td>Charlotte</td>\n",
       "      <td>3020 Driwood Ct\\nHighland Creek\\nCharlotte, NC...</td>\n",
       "      <td>{'Saturday': {'close': '22:30', 'open': '11:00...</td>\n",
       "      <td>35.340816</td>\n",
       "      <td>-80.769978</td>\n",
       "      <td>Tin Tin Cafe</td>\n",
       "      <td>[Highland Creek]</td>\n",
       "      <td>True</td>\n",
       "      <td>6</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NC</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61162</th>\n",
       "      <td>{'Drive-Thru': False, 'Good For Dancing': Fals...</td>\n",
       "      <td>EfMxJr-rWlXc7UlGkI0Y5w</td>\n",
       "      <td>[Bars, American (Traditional), Burgers, Nightl...</td>\n",
       "      <td>Sun Prairie</td>\n",
       "      <td>2832 Prairie Lakes Dr\\nSun Prairie, WI 53590</td>\n",
       "      <td>{}</td>\n",
       "      <td>43.165879</td>\n",
       "      <td>-89.271359</td>\n",
       "      <td>Monk's Bar &amp; Grill</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>9</td>\n",
       "      <td>2.5</td>\n",
       "      <td>WI</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61163</th>\n",
       "      <td>{'Caters': True, 'Good for Kids': True, 'Ambie...</td>\n",
       "      <td>AdEFp9zXwOO84mc1OC37aA</td>\n",
       "      <td>[Steakhouses, American (New), Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>The LINQ Promenade\\n3545 Las Vegas Blvd S\\nThe...</td>\n",
       "      <td>{'Saturday': {'close': '00:00', 'open': '00:00...</td>\n",
       "      <td>36.117337</td>\n",
       "      <td>-115.171138</td>\n",
       "      <td>Off The Strip Bistro &amp; Bar</td>\n",
       "      <td>[The Strip]</td>\n",
       "      <td>True</td>\n",
       "      <td>26</td>\n",
       "      <td>4.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61164</th>\n",
       "      <td>{'Attire': 'casual', 'Good for Kids': True, 'T...</td>\n",
       "      <td>fPc8Zt3jw-XNriLpweadjQ</td>\n",
       "      <td>[Greek, Restaurants]</td>\n",
       "      <td>Glendale</td>\n",
       "      <td>9404 Westgate Blvd\\nGlendale, AZ 85305</td>\n",
       "      <td>{}</td>\n",
       "      <td>33.534484</td>\n",
       "      <td>-112.261985</td>\n",
       "      <td>Opa Life Greek Cafe</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>9</td>\n",
       "      <td>4.0</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61165</th>\n",
       "      <td>{'Caters': False, 'Good for Kids': True, 'Ambi...</td>\n",
       "      <td>Zlv0RZR5cFS5NzeXteuUjg</td>\n",
       "      <td>[Sandwiches, Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>Caesars Palace\\n3570 Las Vegas Blvd S\\nThe Str...</td>\n",
       "      <td>{'Saturday': {'close': '23:00', 'open': '11:00...</td>\n",
       "      <td>36.117724</td>\n",
       "      <td>-115.175836</td>\n",
       "      <td>Earl of Sandwich</td>\n",
       "      <td>[The Strip]</td>\n",
       "      <td>True</td>\n",
       "      <td>7</td>\n",
       "      <td>3.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61166</th>\n",
       "      <td>{'Attire': 'casual', 'Good For Groups': True, ...</td>\n",
       "      <td>BvbFnrg21OU2dULq3OlqcQ</td>\n",
       "      <td>[Seafood, Dim Sum, Chinese, Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>5300 Spring Mountain Rd\\nSte 107\\nChinatown\\nL...</td>\n",
       "      <td>{'Saturday': {'close': '01:00', 'open': '09:00...</td>\n",
       "      <td>36.126671</td>\n",
       "      <td>-115.213592</td>\n",
       "      <td>The Jade Restaurant</td>\n",
       "      <td>[Chinatown]</td>\n",
       "      <td>True</td>\n",
       "      <td>7</td>\n",
       "      <td>3.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61167</th>\n",
       "      <td>{'Wheelchair Accessible': True, 'Price Range':...</td>\n",
       "      <td>6xxvSaMu5Qh13ibAHYJI0A</td>\n",
       "      <td>[Hair Salons, Beauty &amp; Spas, Blow Dry/Out Serv...</td>\n",
       "      <td>Scottsdale</td>\n",
       "      <td>2923 N 67th Pl\\nScottsdale, AZ 85251</td>\n",
       "      <td>{'Saturday': {'close': '20:00', 'open': '08:00...</td>\n",
       "      <td>33.481226</td>\n",
       "      <td>-111.935526</td>\n",
       "      <td>Puzzles Studio</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>6</td>\n",
       "      <td>5.0</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61168</th>\n",
       "      <td>{'Attire': 'casual', 'Good For Groups': True, ...</td>\n",
       "      <td>F14WDg0i6yZwXbflJ8ndaw</td>\n",
       "      <td>[Pizza, Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>Caesars Palace Hotel &amp; Casino\\n3570 Las Vegas ...</td>\n",
       "      <td>{}</td>\n",
       "      <td>36.117168</td>\n",
       "      <td>-115.177901</td>\n",
       "      <td>Di Fara Pizza</td>\n",
       "      <td>[The Strip]</td>\n",
       "      <td>True</td>\n",
       "      <td>3</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61169</th>\n",
       "      <td>{'Caters': False, 'Good for Kids': True, 'Ambi...</td>\n",
       "      <td>5jpV_QXxhfs8wHOXX3E_3w</td>\n",
       "      <td>[Burgers, Fast Food, Sandwiches, Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>7210 S Durango Dr\\nSouthwest\\nLas Vegas, NV 89113</td>\n",
       "      <td>{'Saturday': {'close': '00:00', 'open': '00:00...</td>\n",
       "      <td>36.057182</td>\n",
       "      <td>-115.278528</td>\n",
       "      <td>Checkers Rally's</td>\n",
       "      <td>[Southwest, Spring Valley]</td>\n",
       "      <td>True</td>\n",
       "      <td>12</td>\n",
       "      <td>3.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61170</th>\n",
       "      <td>{'Caters': True, 'Wheelchair Accessible': True...</td>\n",
       "      <td>m0yKevji9esIZdqmK3IVPQ</td>\n",
       "      <td>[Lebanese, Mediterranean, Middle Eastern, Rest...</td>\n",
       "      <td>Henderson</td>\n",
       "      <td>10100 S Eastern Ave\\nSte 120\\nAnthem\\nHenderso...</td>\n",
       "      <td>{'Saturday': {'close': '19:00', 'open': '11:00...</td>\n",
       "      <td>36.005901</td>\n",
       "      <td>-115.111863</td>\n",
       "      <td>Shawarma Plus</td>\n",
       "      <td>[Anthem]</td>\n",
       "      <td>True</td>\n",
       "      <td>7</td>\n",
       "      <td>5.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61171</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'By Appointment...</td>\n",
       "      <td>_L1SVry9jDzk6VLz75Z6Ow</td>\n",
       "      <td>[Beauty &amp; Spas, Nail Salons]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>10300 W Charleston Blvd\\nSte 17\\nSummerlin\\nLa...</td>\n",
       "      <td>{'Saturday': {'close': '17:00', 'open': '09:00...</td>\n",
       "      <td>36.160643</td>\n",
       "      <td>-115.320685</td>\n",
       "      <td>Lacquer Me Up</td>\n",
       "      <td>[Summerlin]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>5.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61172</th>\n",
       "      <td>{'Good for Kids': False, 'Take-out': True, 'De...</td>\n",
       "      <td>bL_zVv5o7IbYhYjwaEBA3Q</td>\n",
       "      <td>[Breakfast &amp; Brunch, Bars, Nightlife, Restaura...</td>\n",
       "      <td>Scottsdale</td>\n",
       "      <td>7301 E Indian Plz\\nScottsdale, AZ 85251</td>\n",
       "      <td>{}</td>\n",
       "      <td>33.501281</td>\n",
       "      <td>-111.923295</td>\n",
       "      <td>Dakota</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>13</td>\n",
       "      <td>3.0</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61173</th>\n",
       "      <td>{'Good for Kids': True, 'Attire': 'casual', 'T...</td>\n",
       "      <td>4O9Du_JiAvz24b2VSOJNTA</td>\n",
       "      <td>[Food, Ethnic Food, Specialty Food]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>9400 S  Eastern Ave\\nSte 106A\\nSoutheast\\nLas ...</td>\n",
       "      <td>{'Saturday': {'close': '19:00', 'open': '12:00...</td>\n",
       "      <td>36.018420</td>\n",
       "      <td>-115.117977</td>\n",
       "      <td>Red Rice</td>\n",
       "      <td>[Southeast]</td>\n",
       "      <td>True</td>\n",
       "      <td>11</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61174</th>\n",
       "      <td>{'Accepts Credit Cards': True}</td>\n",
       "      <td>RE7W4BFzPFdlsXmf0j-DVg</td>\n",
       "      <td>[Local Services, Mobile Phone Repair, IT Servi...</td>\n",
       "      <td>Tempe</td>\n",
       "      <td>1701 E Don Carlos Ave\\nTempe, AZ 85281</td>\n",
       "      <td>{'Saturday': {'close': '19:00', 'open': '09:00...</td>\n",
       "      <td>33.417393</td>\n",
       "      <td>-111.910017</td>\n",
       "      <td>iPro iPhone Repair</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>11</td>\n",
       "      <td>5.0</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61175</th>\n",
       "      <td>{'Caters': False, 'Good for Kids': True, 'Take...</td>\n",
       "      <td>AG3jFaQcABSFF-ry3l5t5g</td>\n",
       "      <td>[Breakfast &amp; Brunch, Buffets, Restaurants]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>Excalibur Hotel Casino\\n3850 Las Vegas Blvd So...</td>\n",
       "      <td>{'Saturday': {'close': '22:00', 'open': '07:00...</td>\n",
       "      <td>36.098909</td>\n",
       "      <td>-115.175557</td>\n",
       "      <td>The Buffet at Excalibur</td>\n",
       "      <td>[The Strip]</td>\n",
       "      <td>True</td>\n",
       "      <td>8</td>\n",
       "      <td>3.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61176</th>\n",
       "      <td>{}</td>\n",
       "      <td>4ryna74I1AH_8KHleBG0Ow</td>\n",
       "      <td>[Movers, Home Services]</td>\n",
       "      <td>Phoenix</td>\n",
       "      <td>16406 N Cave Creek Rd\\nSte 3\\nPhoenix, AZ 85032</td>\n",
       "      <td>{'Saturday': {'close': '17:00', 'open': '07:00...</td>\n",
       "      <td>33.635306</td>\n",
       "      <td>-112.031174</td>\n",
       "      <td>Classic Delivery and Moving Inc</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>3.5</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61177</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Ambience': {'t...</td>\n",
       "      <td>LT00Q44xHSFTs1wJPXeS2A</td>\n",
       "      <td>[Food, American (New), Breweries, Restaurants]</td>\n",
       "      <td>Scottsdale</td>\n",
       "      <td>8608 E Shea Blvd\\nScottsdale, AZ 85260</td>\n",
       "      <td>{}</td>\n",
       "      <td>33.582361</td>\n",
       "      <td>-111.892861</td>\n",
       "      <td>Scottsdale Beer Company</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>29</td>\n",
       "      <td>4.5</td>\n",
       "      <td>AZ</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61178</th>\n",
       "      <td>{'Caters': True, 'Good for Kids': True, 'Ambie...</td>\n",
       "      <td>qrgod2lrYnxHwNWC_YYTyQ</td>\n",
       "      <td>[Seafood, American (New), Latin American, Rest...</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>2620 Regatta Dr\\nSummerlin\\nLas Vegas, NV 89128</td>\n",
       "      <td>{'Saturday': {'close': '23:00', 'open': '09:30...</td>\n",
       "      <td>36.207485</td>\n",
       "      <td>-115.268203</td>\n",
       "      <td>Latin Fish</td>\n",
       "      <td>[Summerlin]</td>\n",
       "      <td>True</td>\n",
       "      <td>13</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61179</th>\n",
       "      <td>{'Good for Kids': True}</td>\n",
       "      <td>PfnfxJw6yD1hSItqHXyblg</td>\n",
       "      <td>[Yelp Events, Local Flavor]</td>\n",
       "      <td>Madison</td>\n",
       "      <td>201 State Street\\nCapitol\\nMadison, WI 53703</td>\n",
       "      <td>{}</td>\n",
       "      <td>43.074278</td>\n",
       "      <td>-89.388344</td>\n",
       "      <td>Elites On Broadway: I Love Lucy</td>\n",
       "      <td>[Capitol]</td>\n",
       "      <td>True</td>\n",
       "      <td>12</td>\n",
       "      <td>5.0</td>\n",
       "      <td>WI</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61180</th>\n",
       "      <td>{}</td>\n",
       "      <td>peTlb_-tmNQTZ3fz3Elieg</td>\n",
       "      <td>[Home Services, Commercial Real Estate, Venues...</td>\n",
       "      <td>Charlotte</td>\n",
       "      <td>10616 Metromont Pkwy\\nCharlotte, NC 28269</td>\n",
       "      <td>{}</td>\n",
       "      <td>35.352848</td>\n",
       "      <td>-80.840350</td>\n",
       "      <td>Charlotte Meeting Room</td>\n",
       "      <td>[]</td>\n",
       "      <td>True</td>\n",
       "      <td>4</td>\n",
       "      <td>5.0</td>\n",
       "      <td>NC</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61181</th>\n",
       "      <td>{'Accepts Credit Cards': True, 'Delivery': Fal...</td>\n",
       "      <td>7gmzKhAr6-A0DCGT4HN-ig</td>\n",
       "      <td>[Food, Desserts, Bakeries]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>The Venetian Resort Hotel &amp; Casino\\n3355 Las V...</td>\n",
       "      <td>{'Saturday': {'close': '21:00', 'open': '06:00...</td>\n",
       "      <td>36.122690</td>\n",
       "      <td>-115.170194</td>\n",
       "      <td>Bouchon Bakery</td>\n",
       "      <td>[The Strip]</td>\n",
       "      <td>True</td>\n",
       "      <td>21</td>\n",
       "      <td>4.0</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61182</th>\n",
       "      <td>{'Accepts Credit Cards': True}</td>\n",
       "      <td>6TPxhpHqFedjMvBuw6pF3w</td>\n",
       "      <td>[Landscaping, Irrigation, Home Services]</td>\n",
       "      <td>Las Vegas</td>\n",
       "      <td>11700 W Charleston Blvd\\nSte 170\\nSummerlin\\nL...</td>\n",
       "      <td>{'Tuesday': {'close': '16:00', 'open': '07:00'...</td>\n",
       "      <td>36.160072</td>\n",
       "      <td>-115.350056</td>\n",
       "      <td>Vegas Valley Lawn Care</td>\n",
       "      <td>[Summerlin]</td>\n",
       "      <td>True</td>\n",
       "      <td>24</td>\n",
       "      <td>4.5</td>\n",
       "      <td>NV</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61183</th>\n",
       "      <td>{}</td>\n",
       "      <td>2EKGrbf2_81MrtjKZeOTng</td>\n",
       "      <td>[Food, Coffee &amp; Tea]</td>\n",
       "      <td>Karlsruhe</td>\n",
       "      <td>Kaiserstr. 93\\n76133 Karlsruhe</td>\n",
       "      <td>{}</td>\n",
       "      <td>49.009268</td>\n",
       "      <td>8.409159</td>\n",
       "      <td>coffee fellows</td>\n",
       "      <td>[]</td>\n",
       "      <td>False</td>\n",
       "      <td>5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>BW</td>\n",
       "      <td>business</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>61184 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              attributes  \\\n",
       "0                          {'By Appointment Only': True}   \n",
       "1      {'Happy Hour': True, 'Outdoor Seating': False,...   \n",
       "2                                {'Good for Kids': True}   \n",
       "3                                                     {}   \n",
       "4      {'Accepts Credit Cards': True, 'Ambience': {'t...   \n",
       "5      {'Accepts Credit Cards': True, 'Ambience': {'t...   \n",
       "6                                                     {}   \n",
       "7                                {'Good for Kids': True}   \n",
       "8                                                     {}   \n",
       "9      {'Good for Kids': True, 'Wheelchair Accessible...   \n",
       "10     {'Accepts Credit Cards': True, 'Parking': {'va...   \n",
       "11     {'Ambience': {'trendy': False, 'divey': False,...   \n",
       "12     {'Ambience': {'trendy': False, 'divey': True, ...   \n",
       "13     {'Good for Kids': True, 'Take-out': True, 'Wai...   \n",
       "14     {'Accepts Credit Cards': True, 'Price Range': ...   \n",
       "15     {'Good for Kids': False, 'Take-out': True, 'Wa...   \n",
       "16                                                    {}   \n",
       "17                       {'Accepts Credit Cards': False}   \n",
       "18     {'Caters': False, 'Wheelchair Accessible': Tru...   \n",
       "19                         {'By Appointment Only': True}   \n",
       "20     {'Attire': 'casual', 'Good For Groups': False,...   \n",
       "21     {'Caters': False, 'Good for Kids': True, 'Ambi...   \n",
       "22                                                    {}   \n",
       "23     {'Caters': True, 'Wheelchair Accessible': True...   \n",
       "24                         {'By Appointment Only': True}   \n",
       "25     {'Caters': False, 'Good for Kids': True, 'Ambi...   \n",
       "26     {'Attire': 'casual', 'Parking': {'validated': ...   \n",
       "27     {'Wheelchair Accessible': True, 'Price Range':...   \n",
       "28     {'Accepts Credit Cards': True, 'Parking': {'va...   \n",
       "29     {'Caters': False, 'Wheelchair Accessible': Tru...   \n",
       "...                                                  ...   \n",
       "61154                            {'Good for Kids': True}   \n",
       "61155  {'Accepts Credit Cards': True, 'Parking': {'va...   \n",
       "61156  {'Good For Groups': True, 'Takes Reservations'...   \n",
       "61157  {'Caters': False, 'Drive-Thru': True, 'Deliver...   \n",
       "61158                                                 {}   \n",
       "61159  {'Caters': True, 'Good for Kids': True, 'Ambie...   \n",
       "61160  {'Accepts Credit Cards': True, 'Parking': {'va...   \n",
       "61161  {'Good for Kids': True, 'Ambience': {'trendy':...   \n",
       "61162  {'Drive-Thru': False, 'Good For Dancing': Fals...   \n",
       "61163  {'Caters': True, 'Good for Kids': True, 'Ambie...   \n",
       "61164  {'Attire': 'casual', 'Good for Kids': True, 'T...   \n",
       "61165  {'Caters': False, 'Good for Kids': True, 'Ambi...   \n",
       "61166  {'Attire': 'casual', 'Good For Groups': True, ...   \n",
       "61167  {'Wheelchair Accessible': True, 'Price Range':...   \n",
       "61168  {'Attire': 'casual', 'Good For Groups': True, ...   \n",
       "61169  {'Caters': False, 'Good for Kids': True, 'Ambi...   \n",
       "61170  {'Caters': True, 'Wheelchair Accessible': True...   \n",
       "61171  {'Accepts Credit Cards': True, 'By Appointment...   \n",
       "61172  {'Good for Kids': False, 'Take-out': True, 'De...   \n",
       "61173  {'Good for Kids': True, 'Attire': 'casual', 'T...   \n",
       "61174                     {'Accepts Credit Cards': True}   \n",
       "61175  {'Caters': False, 'Good for Kids': True, 'Take...   \n",
       "61176                                                 {}   \n",
       "61177  {'Accepts Credit Cards': True, 'Ambience': {'t...   \n",
       "61178  {'Caters': True, 'Good for Kids': True, 'Ambie...   \n",
       "61179                            {'Good for Kids': True}   \n",
       "61180                                                 {}   \n",
       "61181  {'Accepts Credit Cards': True, 'Delivery': Fal...   \n",
       "61182                     {'Accepts Credit Cards': True}   \n",
       "61183                                                 {}   \n",
       "\n",
       "                  business_id  \\\n",
       "0      vcNAWiLM4dR7D2nwwJ7nCA   \n",
       "1      UsFtqoBl7naz8AVUBZMjQQ   \n",
       "2      cE27W9VPgO88Qxe4ol6y_g   \n",
       "3      HZdLhv6COCleJMo7nPl-RA   \n",
       "4      mVHrayjG3uZ_RLHkLj-AMg   \n",
       "5      KayYbHCt-RkbGcPdGOThNg   \n",
       "6      b12U9TFESStdy7CsTtcOeg   \n",
       "7      Sktj1eHQFuVa-M4bgnEh8g   \n",
       "8      3ZVKmuK2l7uXPE6lXY4Dbg   \n",
       "9      wJr6kSA5dchdgOdwH6dZ2w   \n",
       "10     yXuao0pFz1AxB21vJjDf5w   \n",
       "11     fNGIbpazjTRdXgwRY_NIXA   \n",
       "12     b9WZJp5L1RZr4F1nxclOoQ   \n",
       "13     zaXDakTd3RXyOa7sMrUE1g   \n",
       "14     zgy27FSnvwdINfk5cXBIyQ   \n",
       "15     WETE_LykpcnrC1sFcQ5EGg   \n",
       "16     6o3RK6rTcN3nw-j-r2nQmA   \n",
       "17     woOVJ0Z2f6XNCDntHA3b_g   \n",
       "18     rv7CY8G_XibTx82YhuqQRw   \n",
       "19     e_U_FnpdKVgNb4mUN2cU_Q   \n",
       "20     SQ0j7bgSTazkVQlF5AnqyQ   \n",
       "21     wqu7ILomIOPSduRwoWp4AQ   \n",
       "22     1u2NauOy8xDj7aFQET680A   \n",
       "23     P1fJb2WQ1mXoiudj8UE44w   \n",
       "24     xxWFOD46ubTSF3nPRM19BA   \n",
       "25     PK6aSizckHFWk8i0oxt5DA   \n",
       "26     sRqB6flj3GtTZIZJQxf_oA   \n",
       "27     3gmBc0qN_LtGbZAjTtHWZg   \n",
       "28     yHTLTr-QN-loO_7XoxS8qg   \n",
       "29     6ilJq_05xRgek_8qUp36-g   \n",
       "...                       ...   \n",
       "61154  y7G8BTjt3ajGRih3d8SBbQ   \n",
       "61155  UTrs6gV6Y49JTMBif6ujqQ   \n",
       "61156  pesdw9r5ZaAIghcff4I0iw   \n",
       "61157  AjZLGVy8GgpdCCXCtCXV_A   \n",
       "61158  9d9gHcDJ9NnNTjOCENv7Gw   \n",
       "61159  EWdLB__imFSZ9v8EOJBqAQ   \n",
       "61160  YHuuPfxEPRokVbf4wVUscg   \n",
       "61161  NETaLUX6PH9lxLCwzNgq1Q   \n",
       "61162  EfMxJr-rWlXc7UlGkI0Y5w   \n",
       "61163  AdEFp9zXwOO84mc1OC37aA   \n",
       "61164  fPc8Zt3jw-XNriLpweadjQ   \n",
       "61165  Zlv0RZR5cFS5NzeXteuUjg   \n",
       "61166  BvbFnrg21OU2dULq3OlqcQ   \n",
       "61167  6xxvSaMu5Qh13ibAHYJI0A   \n",
       "61168  F14WDg0i6yZwXbflJ8ndaw   \n",
       "61169  5jpV_QXxhfs8wHOXX3E_3w   \n",
       "61170  m0yKevji9esIZdqmK3IVPQ   \n",
       "61171  _L1SVry9jDzk6VLz75Z6Ow   \n",
       "61172  bL_zVv5o7IbYhYjwaEBA3Q   \n",
       "61173  4O9Du_JiAvz24b2VSOJNTA   \n",
       "61174  RE7W4BFzPFdlsXmf0j-DVg   \n",
       "61175  AG3jFaQcABSFF-ry3l5t5g   \n",
       "61176  4ryna74I1AH_8KHleBG0Ow   \n",
       "61177  LT00Q44xHSFTs1wJPXeS2A   \n",
       "61178  qrgod2lrYnxHwNWC_YYTyQ   \n",
       "61179  PfnfxJw6yD1hSItqHXyblg   \n",
       "61180  peTlb_-tmNQTZ3fz3Elieg   \n",
       "61181  7gmzKhAr6-A0DCGT4HN-ig   \n",
       "61182  6TPxhpHqFedjMvBuw6pF3w   \n",
       "61183  2EKGrbf2_81MrtjKZeOTng   \n",
       "\n",
       "                                              categories         city  \\\n",
       "0                            [Doctors, Health & Medical]      Phoenix   \n",
       "1                                            [Nightlife]   Dravosburg   \n",
       "2                         [Active Life, Mini Golf, Golf]  Bethel Park   \n",
       "3      [Shopping, Home Services, Internet Service Pro...   Pittsburgh   \n",
       "4      [Bars, American (New), Nightlife, Lounges, Res...     Braddock   \n",
       "5      [Bars, American (Traditional), Nightlife, Rest...     Carnegie   \n",
       "6                              [Auto Repair, Automotive]     Carnegie   \n",
       "7                               [Active Life, Mini Golf]     Carnegie   \n",
       "8                           [Home Services, Contractors]     Carnegie   \n",
       "9      [Burgers, Breakfast & Brunch, American (Tradit...     Carnegie   \n",
       "10                                       [Food, Grocery]     Carnegie   \n",
       "11     [Bars, American (Traditional), Nightlife, Loun...     Carnegie   \n",
       "12                     [Breakfast & Brunch, Restaurants]     Carnegie   \n",
       "13                                  [Cafes, Restaurants]     Carnegie   \n",
       "14     [Hotels & Travel, Event Planning & Services, H...     Carnegie   \n",
       "15           [Pubs, Irish, Nightlife, Bars, Restaurants]     Carnegie   \n",
       "16                                                    []     Carnegie   \n",
       "17                [Local Services, Sewing & Alterations]     Carnegie   \n",
       "18                                         [Restaurants]     Carnegie   \n",
       "19       [Health & Medical, Dentists, General Dentistry]     Carnegie   \n",
       "20                                [Chinese, Restaurants]     Carnegie   \n",
       "21     [Breakfast & Brunch, American (Traditional), R...   Pittsburgh   \n",
       "22     [Active Life, Gyms, Trainers, Fitness & Instru...     Carnegie   \n",
       "23                                [Restaurants, Italian]     Carnegie   \n",
       "24     [Health & Medical, Periodontists, Dentists, Or...   Pittsburgh   \n",
       "25                     [Burgers, Fast Food, Restaurants]    Homestead   \n",
       "26                                         [Restaurants]    Homestead   \n",
       "27                                  [Food, Coffee & Tea]    Homestead   \n",
       "28     [Arts & Crafts, Shopping, Knitting Supplies, H...      Munhall   \n",
       "29                     [Burgers, Fast Food, Restaurants]      Munhall   \n",
       "...                                                  ...          ...   \n",
       "61154            [Arts & Entertainment, Performing Arts]    Las Vegas   \n",
       "61155             [Health Markets, Food, Specialty Food]    Las Vegas   \n",
       "61156                               [Food, Coffee & Tea]   Scottsdale   \n",
       "61157     [Burgers, American (Traditional), Restaurants]    Las Vegas   \n",
       "61158                 [Marketing, Professional Services]      Phoenix   \n",
       "61159         [Bakeries, Food, Soup, Salad, Restaurants]      Phoenix   \n",
       "61160                                     [Food, Donuts]    Las Vegas   \n",
       "61161                  [Sushi Bars, Diners, Restaurants]    Charlotte   \n",
       "61162  [Bars, American (Traditional), Burgers, Nightl...  Sun Prairie   \n",
       "61163         [Steakhouses, American (New), Restaurants]    Las Vegas   \n",
       "61164                               [Greek, Restaurants]     Glendale   \n",
       "61165                          [Sandwiches, Restaurants]    Las Vegas   \n",
       "61166           [Seafood, Dim Sum, Chinese, Restaurants]    Las Vegas   \n",
       "61167  [Hair Salons, Beauty & Spas, Blow Dry/Out Serv...   Scottsdale   \n",
       "61168                               [Pizza, Restaurants]    Las Vegas   \n",
       "61169      [Burgers, Fast Food, Sandwiches, Restaurants]    Las Vegas   \n",
       "61170  [Lebanese, Mediterranean, Middle Eastern, Rest...    Henderson   \n",
       "61171                       [Beauty & Spas, Nail Salons]    Las Vegas   \n",
       "61172  [Breakfast & Brunch, Bars, Nightlife, Restaura...   Scottsdale   \n",
       "61173                [Food, Ethnic Food, Specialty Food]    Las Vegas   \n",
       "61174  [Local Services, Mobile Phone Repair, IT Servi...        Tempe   \n",
       "61175         [Breakfast & Brunch, Buffets, Restaurants]    Las Vegas   \n",
       "61176                            [Movers, Home Services]      Phoenix   \n",
       "61177     [Food, American (New), Breweries, Restaurants]   Scottsdale   \n",
       "61178  [Seafood, American (New), Latin American, Rest...    Las Vegas   \n",
       "61179                        [Yelp Events, Local Flavor]      Madison   \n",
       "61180  [Home Services, Commercial Real Estate, Venues...    Charlotte   \n",
       "61181                         [Food, Desserts, Bakeries]    Las Vegas   \n",
       "61182           [Landscaping, Irrigation, Home Services]    Las Vegas   \n",
       "61183                               [Food, Coffee & Tea]    Karlsruhe   \n",
       "\n",
       "                                            full_address  \\\n",
       "0      4840 E Indian School Rd\\nSte 101\\nPhoenix, AZ ...   \n",
       "1                   202 McClure St\\nDravosburg, PA 15034   \n",
       "2                1530 Hamilton Rd\\nBethel Park, PA 15234   \n",
       "3                  301 S Hills Vlg\\nPittsburgh, PA 15241   \n",
       "4                    414 Hawkins Ave\\nBraddock, PA 15104   \n",
       "5        141 Hawthorne St\\nGreentree\\nCarnegie, PA 15106   \n",
       "6                 718 Hope Hollow Rd\\nCarnegie, PA 15106   \n",
       "7          920 Forsythe Rd\\nCarnegie\\nCarnegie, PA 15106   \n",
       "8               8 Logan St\\nCarnegie\\nCarnegie, PA 15106   \n",
       "9               2100 Washington Pike\\nCarnegie, PA 15106   \n",
       "10              2100 Washington Pike\\nCarnegie, PA 15106   \n",
       "11               1201 Washington Ave\\nCarnegie, PA 15106   \n",
       "12               1073 Washington Ave\\nCarnegie, PA 15106   \n",
       "13             202 3rd Ave\\nCarnegie\\nCarnegie, PA 15106   \n",
       "14     520 North Bell Avenue\\nCarnegie\\nCarnegie, PA ...   \n",
       "15           215 E Main St\\nCarnegie\\nCarnegie, PA 15106   \n",
       "16           231 E Main St\\nCarnegie\\nCarnegie, PA 15106   \n",
       "17          117 E Mall Plz\\nCarnegie\\nCarnegie, PA 15106   \n",
       "18                       Raceway Plz\\nCarnegie, PA 15106   \n",
       "19                 2323 Greentree Rd\\nCarnegie, PA 15106   \n",
       "20           214 E Main St\\nCarnegie\\nCarnegie, PA 15106   \n",
       "21               2180 Greentree Rd\\nPittsburgh, PA 15220   \n",
       "22                   100 Roessler Rd\\nCarnegie, PA 15106   \n",
       "23           200 E Main St\\nCarnegie\\nCarnegie, PA 15106   \n",
       "24     1730 Settlers Ridge Center Dr\\nPittsburgh, PA ...   \n",
       "25     400 Waterfront Dr E\\nHomestead\\nHomestead, PA ...   \n",
       "26     285 Waterfront Dr E\\nHomestead\\nHomestead, PA ...   \n",
       "27       270 W Bridge St\\nHomestead\\nHomestead, PA 15120   \n",
       "28     660 Waterfront Dr E\\nHomestead\\nMunhall, PA 15120   \n",
       "29     650 E  Waterfront Dr\\nHomestead\\nMunhall, PA 1...   \n",
       "...                                                  ...   \n",
       "61154  V Theater\\n3663 Las Vegas Blvd\\nThe Strip\\nLas...   \n",
       "61155  11710 W Charleston Blvd\\nSte 120\\nSummerlin\\nL...   \n",
       "61156               6235 E Bell Rd\\nScottsdale, AZ 85254   \n",
       "61157               4885 Jones Blvd\\nLas Vegas, NV 89103   \n",
       "61158     2828 N Central Ave\\nSte 741\\nPhoenix, AZ 85004   \n",
       "61159                 10430 N 28th Dr\\nPhoenix, AZ 85051   \n",
       "61160  9435 W Tropicana Ave\\nSte 103\\nSpring Valley\\n...   \n",
       "61161  3020 Driwood Ct\\nHighland Creek\\nCharlotte, NC...   \n",
       "61162       2832 Prairie Lakes Dr\\nSun Prairie, WI 53590   \n",
       "61163  The LINQ Promenade\\n3545 Las Vegas Blvd S\\nThe...   \n",
       "61164             9404 Westgate Blvd\\nGlendale, AZ 85305   \n",
       "61165  Caesars Palace\\n3570 Las Vegas Blvd S\\nThe Str...   \n",
       "61166  5300 Spring Mountain Rd\\nSte 107\\nChinatown\\nL...   \n",
       "61167               2923 N 67th Pl\\nScottsdale, AZ 85251   \n",
       "61168  Caesars Palace Hotel & Casino\\n3570 Las Vegas ...   \n",
       "61169  7210 S Durango Dr\\nSouthwest\\nLas Vegas, NV 89113   \n",
       "61170  10100 S Eastern Ave\\nSte 120\\nAnthem\\nHenderso...   \n",
       "61171  10300 W Charleston Blvd\\nSte 17\\nSummerlin\\nLa...   \n",
       "61172            7301 E Indian Plz\\nScottsdale, AZ 85251   \n",
       "61173  9400 S  Eastern Ave\\nSte 106A\\nSoutheast\\nLas ...   \n",
       "61174             1701 E Don Carlos Ave\\nTempe, AZ 85281   \n",
       "61175  Excalibur Hotel Casino\\n3850 Las Vegas Blvd So...   \n",
       "61176    16406 N Cave Creek Rd\\nSte 3\\nPhoenix, AZ 85032   \n",
       "61177             8608 E Shea Blvd\\nScottsdale, AZ 85260   \n",
       "61178    2620 Regatta Dr\\nSummerlin\\nLas Vegas, NV 89128   \n",
       "61179       201 State Street\\nCapitol\\nMadison, WI 53703   \n",
       "61180          10616 Metromont Pkwy\\nCharlotte, NC 28269   \n",
       "61181  The Venetian Resort Hotel & Casino\\n3355 Las V...   \n",
       "61182  11700 W Charleston Blvd\\nSte 170\\nSummerlin\\nL...   \n",
       "61183                     Kaiserstr. 93\\n76133 Karlsruhe   \n",
       "\n",
       "                                                   hours   latitude  \\\n",
       "0      {'Tuesday': {'close': '17:00', 'open': '08:00'...  33.499313   \n",
       "1                                                     {}  40.350519   \n",
       "2                                                     {}  40.356896   \n",
       "3      {'Saturday': {'close': '21:00', 'open': '10:00...  40.357620   \n",
       "4      {'Saturday': {'close': '16:00', 'open': '10:00...  40.408735   \n",
       "5                                                     {}  40.415517   \n",
       "6                                                     {}  40.394588   \n",
       "7                                                     {}  40.405404   \n",
       "8                                                     {}  40.406324   \n",
       "9      {'Saturday': {'close': '02:00', 'open': '08:00...  40.387732   \n",
       "10                                                    {}  40.387732   \n",
       "11                                                    {}  40.396469   \n",
       "12     {'Saturday': {'close': '12:30', 'open': '06:00...  40.396744   \n",
       "13                                                    {}  40.404638   \n",
       "14     {'Saturday': {'close': '00:00', 'open': '00:00...  40.417419   \n",
       "15                                                    {}  40.408670   \n",
       "16                                                    {}  40.408568   \n",
       "17     {'Saturday': {'close': '18:30', 'open': '08:30...  40.407889   \n",
       "18                                                    {}  40.386891   \n",
       "19                                                    {}  40.390760   \n",
       "20                                                    {}  40.408343   \n",
       "21                                                    {}  40.391255   \n",
       "22                                                    {}  40.394305   \n",
       "23     {'Saturday': {'close': '23:00', 'open': '11:00...  40.408257   \n",
       "24     {'Saturday': {'close': '15:00', 'open': '08:00...  40.470457   \n",
       "25                                                    {}  40.412086   \n",
       "26                                                    {}  40.411692   \n",
       "27                                                    {}  40.407091   \n",
       "28     {'Saturday': {'close': '22:00', 'open': '09:00...  40.414064   \n",
       "29     {'Saturday': {'close': '00:00', 'open': '00:00...  40.413496   \n",
       "...                                                  ...        ...   \n",
       "61154                                                 {}  36.110775   \n",
       "61155  {'Saturday': {'close': '18:30', 'open': '09:30...  36.159345   \n",
       "61156                                                 {}  33.639958   \n",
       "61157  {'Saturday': {'close': '00:00', 'open': '12:00...  36.100254   \n",
       "61158  {'Tuesday': {'close': '16:00', 'open': '07:00'...  33.479952   \n",
       "61159  {'Saturday': {'close': '22:00', 'open': '09:00...  33.580500   \n",
       "61160  {'Saturday': {'close': '15:00', 'open': '05:00...  36.099680   \n",
       "61161  {'Saturday': {'close': '22:30', 'open': '11:00...  35.340816   \n",
       "61162                                                 {}  43.165879   \n",
       "61163  {'Saturday': {'close': '00:00', 'open': '00:00...  36.117337   \n",
       "61164                                                 {}  33.534484   \n",
       "61165  {'Saturday': {'close': '23:00', 'open': '11:00...  36.117724   \n",
       "61166  {'Saturday': {'close': '01:00', 'open': '09:00...  36.126671   \n",
       "61167  {'Saturday': {'close': '20:00', 'open': '08:00...  33.481226   \n",
       "61168                                                 {}  36.117168   \n",
       "61169  {'Saturday': {'close': '00:00', 'open': '00:00...  36.057182   \n",
       "61170  {'Saturday': {'close': '19:00', 'open': '11:00...  36.005901   \n",
       "61171  {'Saturday': {'close': '17:00', 'open': '09:00...  36.160643   \n",
       "61172                                                 {}  33.501281   \n",
       "61173  {'Saturday': {'close': '19:00', 'open': '12:00...  36.018420   \n",
       "61174  {'Saturday': {'close': '19:00', 'open': '09:00...  33.417393   \n",
       "61175  {'Saturday': {'close': '22:00', 'open': '07:00...  36.098909   \n",
       "61176  {'Saturday': {'close': '17:00', 'open': '07:00...  33.635306   \n",
       "61177                                                 {}  33.582361   \n",
       "61178  {'Saturday': {'close': '23:00', 'open': '09:30...  36.207485   \n",
       "61179                                                 {}  43.074278   \n",
       "61180                                                 {}  35.352848   \n",
       "61181  {'Saturday': {'close': '21:00', 'open': '06:00...  36.122690   \n",
       "61182  {'Tuesday': {'close': '16:00', 'open': '07:00'...  36.160072   \n",
       "61183                                                 {}  49.009268   \n",
       "\n",
       "        longitude                                           name  \\\n",
       "0     -111.983758                              Eric Goldberg, MD   \n",
       "1      -79.886930                                   Clancy's Pub   \n",
       "2      -80.015910                       Cool Springs Golf Center   \n",
       "3      -80.059980                               Verizon Wireless   \n",
       "4      -79.866351                                  Emil's Lounge   \n",
       "5      -80.067534                          Alexion's Bar & Grill   \n",
       "6      -80.084454                Flynn's E W Tire Service Center   \n",
       "7      -80.076267               Forsythe Miniature Golf & Snacks   \n",
       "8      -80.090357                      Quaker State Construction   \n",
       "9      -80.092874                        Kings Family Restaurant   \n",
       "10     -80.092874                                    Shop N'save   \n",
       "11     -80.084942                                 Rocky's Lounge   \n",
       "12     -80.084800                                      Gab & Eat   \n",
       "13     -80.089985                   Barb's Country Junction Cafe   \n",
       "14     -80.088557  Extended Stay America - Pittsburgh - Carnegie   \n",
       "15     -80.085279                             Paddy's Pour House   \n",
       "16     -80.084992                     Porto Fino Pizzaria & Gyro   \n",
       "17     -80.086060                               Alteration World   \n",
       "18     -80.093704                             Long John Silver's   \n",
       "19     -80.078657                             Weinberg Lisa, DMD   \n",
       "20     -80.084861                     Don Don Chinese Restaurant   \n",
       "21     -80.073426                                        Denny's   \n",
       "22     -80.060154                                       Amerifit   \n",
       "23     -80.085458                                       Papa J's   \n",
       "24     -80.088959                       Emmert Dental Associates   \n",
       "25     -79.910032                                     McDonald's   \n",
       "26     -79.912343                   Eat'n Park Hospitality Group   \n",
       "27     -79.916958                                      Starbucks   \n",
       "28     -79.903778                                       Michaels   \n",
       "29     -79.904456                                 Steak 'n Shake   \n",
       "...           ...                                            ...   \n",
       "61154 -115.172186                                      Piano Man   \n",
       "61155 -115.350625                            Nutrishop Las Vegas   \n",
       "61156 -111.945244                              Dutch Bros Coffee   \n",
       "61157 -115.225779                                       Checkers   \n",
       "61158 -112.074518                                      HeartHook   \n",
       "61159 -112.122366                                   Panera Bread   \n",
       "61160 -115.298539                                     Ace Donuts   \n",
       "61161  -80.769978                                   Tin Tin Cafe   \n",
       "61162  -89.271359                             Monk's Bar & Grill   \n",
       "61163 -115.171138                     Off The Strip Bistro & Bar   \n",
       "61164 -112.261985                            Opa Life Greek Cafe   \n",
       "61165 -115.175836                               Earl of Sandwich   \n",
       "61166 -115.213592                            The Jade Restaurant   \n",
       "61167 -111.935526                                 Puzzles Studio   \n",
       "61168 -115.177901                                  Di Fara Pizza   \n",
       "61169 -115.278528                               Checkers Rally's   \n",
       "61170 -115.111863                                  Shawarma Plus   \n",
       "61171 -115.320685                                  Lacquer Me Up   \n",
       "61172 -111.923295                                         Dakota   \n",
       "61173 -115.117977                                       Red Rice   \n",
       "61174 -111.910017                             iPro iPhone Repair   \n",
       "61175 -115.175557                        The Buffet at Excalibur   \n",
       "61176 -112.031174                Classic Delivery and Moving Inc   \n",
       "61177 -111.892861                        Scottsdale Beer Company   \n",
       "61178 -115.268203                                     Latin Fish   \n",
       "61179  -89.388344                Elites On Broadway: I Love Lucy   \n",
       "61180  -80.840350                         Charlotte Meeting Room   \n",
       "61181 -115.170194                                 Bouchon Bakery   \n",
       "61182 -115.350056                         Vegas Valley Lawn Care   \n",
       "61183    8.409159                                 coffee fellows   \n",
       "\n",
       "                    neighborhoods   open  review_count  stars state      type  \n",
       "0                              []   True             9    3.5    AZ  business  \n",
       "1                              []   True             4    3.5    PA  business  \n",
       "2                              []  False             5    2.5    PA  business  \n",
       "3                              []   True             3    3.5    PA  business  \n",
       "4                              []   True            11    4.5    PA  business  \n",
       "5                     [Greentree]   True            15    4.0    PA  business  \n",
       "6                              []   True             5    1.5    PA  business  \n",
       "7                      [Carnegie]   True             4    4.0    PA  business  \n",
       "8                      [Carnegie]   True             3    2.5    PA  business  \n",
       "9                              []   True             8    3.5    PA  business  \n",
       "10                             []   True             3    3.5    PA  business  \n",
       "11                             []   True             5    4.0    PA  business  \n",
       "12                             []   True            38    4.5    PA  business  \n",
       "13                     [Carnegie]   True             5    4.0    PA  business  \n",
       "14                     [Carnegie]   True             5    4.0    PA  business  \n",
       "15                     [Carnegie]  False             6    3.5    PA  business  \n",
       "16                     [Carnegie]   True             4    2.5    PA  business  \n",
       "17                     [Carnegie]   True             5    5.0    PA  business  \n",
       "18                             []   True             3    3.5    PA  business  \n",
       "19                             []   True             6    2.0    PA  business  \n",
       "20                     [Carnegie]   True             8    2.5    PA  business  \n",
       "21                             []   True             7    4.0    PA  business  \n",
       "22                             []   True             5    2.5    PA  business  \n",
       "23                     [Carnegie]   True            46    3.5    PA  business  \n",
       "24                             []   True             3    1.0    PA  business  \n",
       "25                    [Homestead]   True             5    2.0    PA  business  \n",
       "26                    [Homestead]   True             3    2.5    PA  business  \n",
       "27                    [Homestead]   True            16    3.5    PA  business  \n",
       "28                    [Homestead]   True             8    3.0    PA  business  \n",
       "29                    [Homestead]   True            36    2.0    PA  business  \n",
       "...                           ...    ...           ...    ...   ...       ...  \n",
       "61154                 [The Strip]   True             6    4.5    NV  business  \n",
       "61155                 [Summerlin]   True             3    5.0    NV  business  \n",
       "61156                          []   True             7    4.5    AZ  business  \n",
       "61157                          []   True            11    2.5    NV  business  \n",
       "61158                          []   True             4    5.0    AZ  business  \n",
       "61159                          []   True             9    3.5    AZ  business  \n",
       "61160             [Spring Valley]   True            20    4.5    NV  business  \n",
       "61161            [Highland Creek]   True             6    4.0    NC  business  \n",
       "61162                          []   True             9    2.5    WI  business  \n",
       "61163                 [The Strip]   True            26    4.5    NV  business  \n",
       "61164                          []   True             9    4.0    AZ  business  \n",
       "61165                 [The Strip]   True             7    3.5    NV  business  \n",
       "61166                 [Chinatown]   True             7    3.5    NV  business  \n",
       "61167                          []   True             6    5.0    AZ  business  \n",
       "61168                 [The Strip]   True             3    4.0    NV  business  \n",
       "61169  [Southwest, Spring Valley]   True            12    3.0    NV  business  \n",
       "61170                    [Anthem]   True             7    5.0    NV  business  \n",
       "61171                 [Summerlin]   True             4    5.0    NV  business  \n",
       "61172                          []   True            13    3.0    AZ  business  \n",
       "61173                 [Southeast]   True            11    4.0    NV  business  \n",
       "61174                          []   True            11    5.0    AZ  business  \n",
       "61175                 [The Strip]   True             8    3.0    NV  business  \n",
       "61176                          []   True             4    3.5    AZ  business  \n",
       "61177                          []   True            29    4.5    AZ  business  \n",
       "61178                 [Summerlin]   True            13    4.0    NV  business  \n",
       "61179                   [Capitol]   True            12    5.0    WI  business  \n",
       "61180                          []   True             4    5.0    NC  business  \n",
       "61181                 [The Strip]   True            21    4.0    NV  business  \n",
       "61182                 [Summerlin]   True            24    4.5    NV  business  \n",
       "61183                          []  False             5    2.5    BW  business  \n",
       "\n",
       "[61184 rows x 15 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "biz_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10000, 8)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Load the first 10,000 reviews\n",
    "f = open('data/yelp/v6/yelp_dataset_challenge_academic_dataset/yelp_academic_dataset_review.json')\n",
    "js = []\n",
    "for i in range(10000):\n",
    "    js.append(json.loads(f.readline()))\n",
    "f.close()\n",
    "review_df = pd.DataFrame(js)\n",
    "review_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>business_id</th>\n",
       "      <th>date</th>\n",
       "      <th>review_id</th>\n",
       "      <th>stars</th>\n",
       "      <th>text</th>\n",
       "      <th>type</th>\n",
       "      <th>user_id</th>\n",
       "      <th>votes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2007-05-17</td>\n",
       "      <td>15SdjuK7DmYqUAj6rjGowg</td>\n",
       "      <td>5</td>\n",
       "      <td>dr. goldberg offers everything i look for in a...</td>\n",
       "      <td>review</td>\n",
       "      <td>Xqd0DzHaiyRqVH3WRG7hzg</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2010-03-22</td>\n",
       "      <td>RF6UnRTtG7tWMcrO2GEoAg</td>\n",
       "      <td>2</td>\n",
       "      <td>Unfortunately, the frustration of being Dr. Go...</td>\n",
       "      <td>review</td>\n",
       "      <td>H1kH6QZV7Le4zqTRNxoZow</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2012-02-14</td>\n",
       "      <td>-TsVN230RCkLYKBeLsuz7A</td>\n",
       "      <td>4</td>\n",
       "      <td>Dr. Goldberg has been my doctor for years and ...</td>\n",
       "      <td>review</td>\n",
       "      <td>zvJCcrpm2yOZrxKffwGQLA</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2012-03-02</td>\n",
       "      <td>dNocEAyUucjT371NNND41Q</td>\n",
       "      <td>4</td>\n",
       "      <td>Been going to Dr. Goldberg for over 10 years. ...</td>\n",
       "      <td>review</td>\n",
       "      <td>KBLW4wJA_fwoWmMhiHRVOA</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2012-05-15</td>\n",
       "      <td>ebcN2aqmNUuYNoyvQErgnA</td>\n",
       "      <td>4</td>\n",
       "      <td>Got a letter in the mail last week that said D...</td>\n",
       "      <td>review</td>\n",
       "      <td>zvJCcrpm2yOZrxKffwGQLA</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2013-04-19</td>\n",
       "      <td>_ePLBPrkrf4bhyiKWEn4Qg</td>\n",
       "      <td>1</td>\n",
       "      <td>I don't know what Dr. Goldberg was like before...</td>\n",
       "      <td>review</td>\n",
       "      <td>Qrs3EICADUKNFoUq2iHStA</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2014-01-02</td>\n",
       "      <td>kMu0knsSUFW2DZXqKkGWlg</td>\n",
       "      <td>5</td>\n",
       "      <td>Top notch doctor in a top notch practice. Can'...</td>\n",
       "      <td>review</td>\n",
       "      <td>jE5xVugujSaskAoh2DRx3Q</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2014-01-08</td>\n",
       "      <td>onDPFgNZpMk-bT1zlForRA</td>\n",
       "      <td>5</td>\n",
       "      <td>Dr. Eric Goldberg is a fantastic doctor who ha...</td>\n",
       "      <td>review</td>\n",
       "      <td>QnhQ8G51XbUpVEyWY2Km-A</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2014-08-01</td>\n",
       "      <td>bOJD0Kc3wGioat3oSFqgPQ</td>\n",
       "      <td>1</td>\n",
       "      <td>I'm writing this review to give you a heads up...</td>\n",
       "      <td>review</td>\n",
       "      <td>tAB7GJpUuaKF4W-3P0d95A</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>vcNAWiLM4dR7D2nwwJ7nCA</td>\n",
       "      <td>2014-12-12</td>\n",
       "      <td>QzjRXUNSGk3PySEcg5y92g</td>\n",
       "      <td>5</td>\n",
       "      <td>I love Dr. Goldberg. Best doctor I've ever had...</td>\n",
       "      <td>review</td>\n",
       "      <td>GP-h9colXgkT79BW7aDJeg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>UsFtqoBl7naz8AVUBZMjQQ</td>\n",
       "      <td>2013-11-08</td>\n",
       "      <td>Di3exaUCFNw1V4kSNW5pgA</td>\n",
       "      <td>5</td>\n",
       "      <td>All the food is great here. But the best thing...</td>\n",
       "      <td>review</td>\n",
       "      <td>uK8tzraOp4M5u3uYrqIBXg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>UsFtqoBl7naz8AVUBZMjQQ</td>\n",
       "      <td>2014-03-29</td>\n",
       "      <td>0Lua2-PbqEQMjD9r89-asw</td>\n",
       "      <td>3</td>\n",
       "      <td>We checked this place out this past Monday for...</td>\n",
       "      <td>review</td>\n",
       "      <td>I_47G-R2_egp7ME5u_ltew</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>UsFtqoBl7naz8AVUBZMjQQ</td>\n",
       "      <td>2014-10-29</td>\n",
       "      <td>7N9j5YbBHBW6qguE5DAeyA</td>\n",
       "      <td>2</td>\n",
       "      <td>Wing sauce is like water. Pretty much a lot of...</td>\n",
       "      <td>review</td>\n",
       "      <td>PP_xoMSYlGr2pb67BbqBdA</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>UsFtqoBl7naz8AVUBZMjQQ</td>\n",
       "      <td>2014-11-28</td>\n",
       "      <td>mjCJR33jvUNt41iJCxDU_g</td>\n",
       "      <td>4</td>\n",
       "      <td>Cold cheap beer. Good bar food. Good service. ...</td>\n",
       "      <td>review</td>\n",
       "      <td>JPPhyFE-UE453zA6K0TVgw</td>\n",
       "      <td>{'cool': 1, 'funny': 1, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>cE27W9VPgO88Qxe4ol6y_g</td>\n",
       "      <td>2012-08-19</td>\n",
       "      <td>XsA6AojkWjOHA4FmuAb8XQ</td>\n",
       "      <td>3</td>\n",
       "      <td>Decent range somewhat close to the city.  The ...</td>\n",
       "      <td>review</td>\n",
       "      <td>fhNxoMwwTipzjO8A9LFe8Q</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>cE27W9VPgO88Qxe4ol6y_g</td>\n",
       "      <td>2013-04-18</td>\n",
       "      <td>rkD7UDbQ9VM3Va6bI-eBHQ</td>\n",
       "      <td>1</td>\n",
       "      <td>Owning a driving range inside the city limits ...</td>\n",
       "      <td>review</td>\n",
       "      <td>-6rEfobYjMxpUWLNxszaxQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>cE27W9VPgO88Qxe4ol6y_g</td>\n",
       "      <td>2013-07-14</td>\n",
       "      <td>WExNE-f93SL4D1q8s9QWKg</td>\n",
       "      <td>1</td>\n",
       "      <td>This place is absolute garbage...  Half of the...</td>\n",
       "      <td>review</td>\n",
       "      <td>KZuaJtFindQM9x2ZoMBxcQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>cE27W9VPgO88Qxe4ol6y_g</td>\n",
       "      <td>2013-08-16</td>\n",
       "      <td>iS34GJhMkkt9kCoTJLYEwA</td>\n",
       "      <td>4</td>\n",
       "      <td>Before I finally made it over to this range I ...</td>\n",
       "      <td>review</td>\n",
       "      <td>H9E5VejGEsRhwcbOMFknmQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>cE27W9VPgO88Qxe4ol6y_g</td>\n",
       "      <td>2014-07-11</td>\n",
       "      <td>S-G0D8Cy7PnqShoBZu8PCA</td>\n",
       "      <td>4</td>\n",
       "      <td>I drove by yesterday to get a sneak peak.  It ...</td>\n",
       "      <td>review</td>\n",
       "      <td>ljwgUJowB69klaR8Au-H7g</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>HZdLhv6COCleJMo7nPl-RA</td>\n",
       "      <td>2013-06-10</td>\n",
       "      <td>fBQ69-NU9ZyTjjS7Tb5tww</td>\n",
       "      <td>5</td>\n",
       "      <td>THANK YOU ROB! i truly appreciated all the hel...</td>\n",
       "      <td>review</td>\n",
       "      <td>JbAeIYc89Sk8SWmrBCJs9g</td>\n",
       "      <td>{'cool': 7, 'funny': 3, 'useful': 7}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>HZdLhv6COCleJMo7nPl-RA</td>\n",
       "      <td>2013-12-23</td>\n",
       "      <td>CFiLh7WvH7dM3qVZvNiacQ</td>\n",
       "      <td>2</td>\n",
       "      <td>After waiting for almost 30 minutes to trade i...</td>\n",
       "      <td>review</td>\n",
       "      <td>l_szjd-ken3ma6oHDkTYXg</td>\n",
       "      <td>{'cool': 1, 'funny': 1, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>HZdLhv6COCleJMo7nPl-RA</td>\n",
       "      <td>2014-09-04</td>\n",
       "      <td>UzMViMQZuSxOr5wrru3LwQ</td>\n",
       "      <td>4</td>\n",
       "      <td>I visited this store several months ago to sim...</td>\n",
       "      <td>review</td>\n",
       "      <td>zo_soThZw8eVglPbCRNC9A</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2012-12-01</td>\n",
       "      <td>6w6gMZ3iBLGcUM4RBIuifQ</td>\n",
       "      <td>5</td>\n",
       "      <td>This place was DELICIOUS!!  My parents saw a r...</td>\n",
       "      <td>review</td>\n",
       "      <td>LWbYpcangjBMm4KPxZGOKg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2013-03-15</td>\n",
       "      <td>jVVv_DA5mCDB6mediuwHAw</td>\n",
       "      <td>5</td>\n",
       "      <td>Can't miss stop for the best Fish Sandwich in ...</td>\n",
       "      <td>review</td>\n",
       "      <td>m1FpV3EAeggaAdfPx0hBRQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2013-03-30</td>\n",
       "      <td>3Es8GsjkssusYgeU6_ZVpQ</td>\n",
       "      <td>5</td>\n",
       "      <td>This place should have a lot more reviews - bu...</td>\n",
       "      <td>review</td>\n",
       "      <td>8fApIAMHn2MZJFUiCQto5Q</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2013-10-20</td>\n",
       "      <td>KAkcn7oQP1xX8KsZ-XmktA</td>\n",
       "      <td>4</td>\n",
       "      <td>This place was very good. I found out about Em...</td>\n",
       "      <td>review</td>\n",
       "      <td>uK8tzraOp4M5u3uYrqIBXg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2013-11-07</td>\n",
       "      <td>BZNJkkP0bXnwQ2-sCqat2Q</td>\n",
       "      <td>5</td>\n",
       "      <td>Old school.....traditional \"mom 'n pop\" qualit...</td>\n",
       "      <td>review</td>\n",
       "      <td>6wvlM5L4_EroGXbnb_92xQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2014-03-22</td>\n",
       "      <td>VDTIbR3G5_IPkpXbo2MutA</td>\n",
       "      <td>5</td>\n",
       "      <td>Seen this restaurant on 25 best places in Pitt...</td>\n",
       "      <td>review</td>\n",
       "      <td>345nDw0oC-jOcglqxmzweQ</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2014-09-29</td>\n",
       "      <td>5uyYmniYyIB_wtKtyXDudQ</td>\n",
       "      <td>4</td>\n",
       "      <td>Wonderful reuben.  Map shown on Yelp page is i...</td>\n",
       "      <td>review</td>\n",
       "      <td>u9ULAsnYTdYH65Haj5LMSw</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>mVHrayjG3uZ_RLHkLj-AMg</td>\n",
       "      <td>2014-09-29</td>\n",
       "      <td>zyn_Libz9VZTZ--OdC4-tQ</td>\n",
       "      <td>5</td>\n",
       "      <td>Good fish sandwich.</td>\n",
       "      <td>review</td>\n",
       "      <td>pdHC0oAcG7gNdhuFRAUu0Q</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9970</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2009-06-20</td>\n",
       "      <td>Kp_6DFNt37t4srY0VafRHQ</td>\n",
       "      <td>4</td>\n",
       "      <td>I've been seeing Richard at Dean of Shadyside ...</td>\n",
       "      <td>review</td>\n",
       "      <td>7r_tPMmXONGYnSH493xczQ</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 4}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9971</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2009-11-21</td>\n",
       "      <td>6ik-hh_I2BNICPvCU897SA</td>\n",
       "      <td>5</td>\n",
       "      <td>I died my very blonde hair with a box of brigh...</td>\n",
       "      <td>review</td>\n",
       "      <td>tFZAW-1oKyx0N-tbNptopA</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9972</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2010-07-12</td>\n",
       "      <td>n6m3G_361yOX71wTtlHmwQ</td>\n",
       "      <td>5</td>\n",
       "      <td>My favorite salon. I've had two different styl...</td>\n",
       "      <td>review</td>\n",
       "      <td>bEyGMTOF8gcAwjNz_qXv-w</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9973</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2010-09-19</td>\n",
       "      <td>aZpI7ZaBVVAjuQNv-79s4Q</td>\n",
       "      <td>4</td>\n",
       "      <td>I discovered this place from a Living Daily De...</td>\n",
       "      <td>review</td>\n",
       "      <td>-nYWT--flsvUsPshFR5uWw</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9974</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2011-02-05</td>\n",
       "      <td>ofQtX_zfsoBJUBHpa2dVvA</td>\n",
       "      <td>1</td>\n",
       "      <td>I went into Dean of Shadyside salon to get my ...</td>\n",
       "      <td>review</td>\n",
       "      <td>sAvY_niYguFBVWMjn7aP1A</td>\n",
       "      <td>{'cool': 4, 'funny': 1, 'useful': 6}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9975</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2011-03-30</td>\n",
       "      <td>eL7gwdF9c-lE0qolo4VXbw</td>\n",
       "      <td>4</td>\n",
       "      <td>I've been going to Dean's for about a year.  I...</td>\n",
       "      <td>review</td>\n",
       "      <td>_ta-eVom-K35OpbtUKKW9A</td>\n",
       "      <td>{'cool': 1, 'funny': 1, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9976</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2011-06-24</td>\n",
       "      <td>8-9TQ5zcVgkAFWYDSuNwWg</td>\n",
       "      <td>3</td>\n",
       "      <td>Welcome to the Richard show!!! He is pompous. ...</td>\n",
       "      <td>review</td>\n",
       "      <td>4cW3iQW6JD1C8VxYP0eyXg</td>\n",
       "      <td>{'cool': 2, 'funny': 8, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9977</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2011-12-07</td>\n",
       "      <td>kUWPSp6qbvfWfXxrEr0OCw</td>\n",
       "      <td>5</td>\n",
       "      <td>I recently took advantage of a Groupon deal th...</td>\n",
       "      <td>review</td>\n",
       "      <td>1YPFrlSsnab1jTtRdQEWjw</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9978</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2012-07-09</td>\n",
       "      <td>bsSBYP1qg0SUFBKhepwbRg</td>\n",
       "      <td>5</td>\n",
       "      <td>I have been trying to achieve a specific hair ...</td>\n",
       "      <td>review</td>\n",
       "      <td>5wBR0yfNsjyeL3EODvasUQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2012-07-29</td>\n",
       "      <td>CwUnOKZB_mt52mj2tDGq6w</td>\n",
       "      <td>4</td>\n",
       "      <td>My roommate and I refer to Courtney as \"Courtn...</td>\n",
       "      <td>review</td>\n",
       "      <td>EzCamzloWgU2fngkoZLxnw</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9980</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2012-09-19</td>\n",
       "      <td>CjuLT41htP9J2TyBwnXVcg</td>\n",
       "      <td>5</td>\n",
       "      <td>Richard gave me the BEST haircut of my life.  ...</td>\n",
       "      <td>review</td>\n",
       "      <td>clgaCFcZ0-JnM7V9DGbOlg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9981</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2012-10-06</td>\n",
       "      <td>RL0KM9-84zJaQlWr9mSu9w</td>\n",
       "      <td>5</td>\n",
       "      <td>I just got my hair done at Dean of Shadyside S...</td>\n",
       "      <td>review</td>\n",
       "      <td>XyuwTWSPkqrWTnzivVUTtA</td>\n",
       "      <td>{'cool': 1, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9982</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2012-10-09</td>\n",
       "      <td>xRfRP6rWyJWVhjo6HrjbYg</td>\n",
       "      <td>5</td>\n",
       "      <td>Got my haircut from Valerie who was talented a...</td>\n",
       "      <td>review</td>\n",
       "      <td>KELe6zeNFPPLuFLl4pbrCg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9983</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2012-10-17</td>\n",
       "      <td>XVnCENhm9DWRIzqY0ytt6Q</td>\n",
       "      <td>5</td>\n",
       "      <td>After a bad experience at MCN salon, I waited ...</td>\n",
       "      <td>review</td>\n",
       "      <td>aY3qz3FcTuVmisbzsfsqBQ</td>\n",
       "      <td>{'cool': 1, 'funny': 1, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9984</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-01-10</td>\n",
       "      <td>3yo1_cewEkeGIeiNoWCBMQ</td>\n",
       "      <td>1</td>\n",
       "      <td>If you are into crooked haircuts and terrible ...</td>\n",
       "      <td>review</td>\n",
       "      <td>UaY1ZqjSya-DSLJMe5MJfQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9985</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-01-10</td>\n",
       "      <td>-JV6tkWeU3ryqqDH9xTs4g</td>\n",
       "      <td>4</td>\n",
       "      <td>Went there a few times now and am planning on ...</td>\n",
       "      <td>review</td>\n",
       "      <td>fWdZAtSjlqtt1tkDlVdnyg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9986</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-01-11</td>\n",
       "      <td>zfI1gQl8M4NnOneS9rKakw</td>\n",
       "      <td>5</td>\n",
       "      <td>I got a groupon for Dean of Shadyside for hair...</td>\n",
       "      <td>review</td>\n",
       "      <td>LRG-UTo3rzlnm1B_fjiSlg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9987</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-01-18</td>\n",
       "      <td>79u58fMEqHtbV4UOYlc16w</td>\n",
       "      <td>5</td>\n",
       "      <td>As I began my post-college life (this was befo...</td>\n",
       "      <td>review</td>\n",
       "      <td>6Mflt7fworNLu031TDrDSA</td>\n",
       "      <td>{'cool': 1, 'funny': 1, 'useful': 3}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9988</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-01-27</td>\n",
       "      <td>gtEddQsz9A2TF2hMfyzA2w</td>\n",
       "      <td>5</td>\n",
       "      <td>Just a quick update from my first review a lit...</td>\n",
       "      <td>review</td>\n",
       "      <td>1YPFrlSsnab1jTtRdQEWjw</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9989</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-01-30</td>\n",
       "      <td>uLtKeVPGDf2UlJFk6_JggA</td>\n",
       "      <td>5</td>\n",
       "      <td>I had my first Dean of Shadyside experience tw...</td>\n",
       "      <td>review</td>\n",
       "      <td>lZpv9uSDKgyUxk1VPwyzDg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9990</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-02-12</td>\n",
       "      <td>A2tLzWKMwfFMtXwrJivR-Q</td>\n",
       "      <td>4</td>\n",
       "      <td>I went to Dean of Shady side based on Yelp rev...</td>\n",
       "      <td>review</td>\n",
       "      <td>Hqtb6mJAX5xl1LsVaKmI6g</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9991</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-03-12</td>\n",
       "      <td>o4FKK_zduKrXdwV38boo2g</td>\n",
       "      <td>1</td>\n",
       "      <td>Terrible! I purchased a groupon, but after all...</td>\n",
       "      <td>review</td>\n",
       "      <td>KSqjrGkLrT9P2XxOAeKD2Q</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9992</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-04-16</td>\n",
       "      <td>l0XDR2dfGj7ADtxcZ_CTaw</td>\n",
       "      <td>4</td>\n",
       "      <td>Update on the pedicure: Today, Natalia did my ...</td>\n",
       "      <td>review</td>\n",
       "      <td>fWdZAtSjlqtt1tkDlVdnyg</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9993</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-04-21</td>\n",
       "      <td>MpRLTeM-lPlZRK9Xx8LG4g</td>\n",
       "      <td>3</td>\n",
       "      <td>I've been going to Deans for a couple years no...</td>\n",
       "      <td>review</td>\n",
       "      <td>vFgVosI6MUPX8Y23hmuMXw</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9994</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-05-15</td>\n",
       "      <td>-GRZA-vkcEayxYUO7bzcvQ</td>\n",
       "      <td>5</td>\n",
       "      <td>I've been to Dean of Shadyside on several occa...</td>\n",
       "      <td>review</td>\n",
       "      <td>iTJR6dVBds5FhGIXWy190w</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9995</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-06-06</td>\n",
       "      <td>WlWCCPfeNsCJzgPGiP8aPw</td>\n",
       "      <td>2</td>\n",
       "      <td>Just moved to Pittsburgh a week ago and I need...</td>\n",
       "      <td>review</td>\n",
       "      <td>1aU9rvo7j7uRzTR25RLuTA</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9996</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-07-21</td>\n",
       "      <td>IpV51LS9QulwrF1_FY8t6g</td>\n",
       "      <td>5</td>\n",
       "      <td>I was very impressed by the way this salon is ...</td>\n",
       "      <td>review</td>\n",
       "      <td>5TgsyucUcHqpmmgRJ51RQQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9997</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-08-07</td>\n",
       "      <td>3O7uvRf-2UuYysOrm73mZQ</td>\n",
       "      <td>5</td>\n",
       "      <td>This is where I always get my haircut and colo...</td>\n",
       "      <td>review</td>\n",
       "      <td>AjBhNARc8TdGpRbZWEe4wA</td>\n",
       "      <td>{'cool': 2, 'funny': 0, 'useful': 2}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9998</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-08-24</td>\n",
       "      <td>x0m8b8eRQ7F-ou1qGIvN3Q</td>\n",
       "      <td>5</td>\n",
       "      <td>Super happy with my experience --  stylist Ter...</td>\n",
       "      <td>review</td>\n",
       "      <td>DxsrOue89OrCoe0m-vui_Q</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 1}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9999</th>\n",
       "      <td>17Zp0inFGLaQsxMBapdh4Q</td>\n",
       "      <td>2013-11-27</td>\n",
       "      <td>E_wzHqAWQgndMTQWsmnutA</td>\n",
       "      <td>5</td>\n",
       "      <td>Love my hair!  I bought a Groupon for a cut an...</td>\n",
       "      <td>review</td>\n",
       "      <td>l7skMgKS8KoaYgOnHVAusQ</td>\n",
       "      <td>{'cool': 0, 'funny': 0, 'useful': 0}</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>10000 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                 business_id        date               review_id  stars  \\\n",
       "0     vcNAWiLM4dR7D2nwwJ7nCA  2007-05-17  15SdjuK7DmYqUAj6rjGowg      5   \n",
       "1     vcNAWiLM4dR7D2nwwJ7nCA  2010-03-22  RF6UnRTtG7tWMcrO2GEoAg      2   \n",
       "2     vcNAWiLM4dR7D2nwwJ7nCA  2012-02-14  -TsVN230RCkLYKBeLsuz7A      4   \n",
       "3     vcNAWiLM4dR7D2nwwJ7nCA  2012-03-02  dNocEAyUucjT371NNND41Q      4   \n",
       "4     vcNAWiLM4dR7D2nwwJ7nCA  2012-05-15  ebcN2aqmNUuYNoyvQErgnA      4   \n",
       "5     vcNAWiLM4dR7D2nwwJ7nCA  2013-04-19  _ePLBPrkrf4bhyiKWEn4Qg      1   \n",
       "6     vcNAWiLM4dR7D2nwwJ7nCA  2014-01-02  kMu0knsSUFW2DZXqKkGWlg      5   \n",
       "7     vcNAWiLM4dR7D2nwwJ7nCA  2014-01-08  onDPFgNZpMk-bT1zlForRA      5   \n",
       "8     vcNAWiLM4dR7D2nwwJ7nCA  2014-08-01  bOJD0Kc3wGioat3oSFqgPQ      1   \n",
       "9     vcNAWiLM4dR7D2nwwJ7nCA  2014-12-12  QzjRXUNSGk3PySEcg5y92g      5   \n",
       "10    UsFtqoBl7naz8AVUBZMjQQ  2013-11-08  Di3exaUCFNw1V4kSNW5pgA      5   \n",
       "11    UsFtqoBl7naz8AVUBZMjQQ  2014-03-29  0Lua2-PbqEQMjD9r89-asw      3   \n",
       "12    UsFtqoBl7naz8AVUBZMjQQ  2014-10-29  7N9j5YbBHBW6qguE5DAeyA      2   \n",
       "13    UsFtqoBl7naz8AVUBZMjQQ  2014-11-28  mjCJR33jvUNt41iJCxDU_g      4   \n",
       "14    cE27W9VPgO88Qxe4ol6y_g  2012-08-19  XsA6AojkWjOHA4FmuAb8XQ      3   \n",
       "15    cE27W9VPgO88Qxe4ol6y_g  2013-04-18  rkD7UDbQ9VM3Va6bI-eBHQ      1   \n",
       "16    cE27W9VPgO88Qxe4ol6y_g  2013-07-14  WExNE-f93SL4D1q8s9QWKg      1   \n",
       "17    cE27W9VPgO88Qxe4ol6y_g  2013-08-16  iS34GJhMkkt9kCoTJLYEwA      4   \n",
       "18    cE27W9VPgO88Qxe4ol6y_g  2014-07-11  S-G0D8Cy7PnqShoBZu8PCA      4   \n",
       "19    HZdLhv6COCleJMo7nPl-RA  2013-06-10  fBQ69-NU9ZyTjjS7Tb5tww      5   \n",
       "20    HZdLhv6COCleJMo7nPl-RA  2013-12-23  CFiLh7WvH7dM3qVZvNiacQ      2   \n",
       "21    HZdLhv6COCleJMo7nPl-RA  2014-09-04  UzMViMQZuSxOr5wrru3LwQ      4   \n",
       "22    mVHrayjG3uZ_RLHkLj-AMg  2012-12-01  6w6gMZ3iBLGcUM4RBIuifQ      5   \n",
       "23    mVHrayjG3uZ_RLHkLj-AMg  2013-03-15  jVVv_DA5mCDB6mediuwHAw      5   \n",
       "24    mVHrayjG3uZ_RLHkLj-AMg  2013-03-30  3Es8GsjkssusYgeU6_ZVpQ      5   \n",
       "25    mVHrayjG3uZ_RLHkLj-AMg  2013-10-20  KAkcn7oQP1xX8KsZ-XmktA      4   \n",
       "26    mVHrayjG3uZ_RLHkLj-AMg  2013-11-07  BZNJkkP0bXnwQ2-sCqat2Q      5   \n",
       "27    mVHrayjG3uZ_RLHkLj-AMg  2014-03-22  VDTIbR3G5_IPkpXbo2MutA      5   \n",
       "28    mVHrayjG3uZ_RLHkLj-AMg  2014-09-29  5uyYmniYyIB_wtKtyXDudQ      4   \n",
       "29    mVHrayjG3uZ_RLHkLj-AMg  2014-09-29  zyn_Libz9VZTZ--OdC4-tQ      5   \n",
       "...                      ...         ...                     ...    ...   \n",
       "9970  17Zp0inFGLaQsxMBapdh4Q  2009-06-20  Kp_6DFNt37t4srY0VafRHQ      4   \n",
       "9971  17Zp0inFGLaQsxMBapdh4Q  2009-11-21  6ik-hh_I2BNICPvCU897SA      5   \n",
       "9972  17Zp0inFGLaQsxMBapdh4Q  2010-07-12  n6m3G_361yOX71wTtlHmwQ      5   \n",
       "9973  17Zp0inFGLaQsxMBapdh4Q  2010-09-19  aZpI7ZaBVVAjuQNv-79s4Q      4   \n",
       "9974  17Zp0inFGLaQsxMBapdh4Q  2011-02-05  ofQtX_zfsoBJUBHpa2dVvA      1   \n",
       "9975  17Zp0inFGLaQsxMBapdh4Q  2011-03-30  eL7gwdF9c-lE0qolo4VXbw      4   \n",
       "9976  17Zp0inFGLaQsxMBapdh4Q  2011-06-24  8-9TQ5zcVgkAFWYDSuNwWg      3   \n",
       "9977  17Zp0inFGLaQsxMBapdh4Q  2011-12-07  kUWPSp6qbvfWfXxrEr0OCw      5   \n",
       "9978  17Zp0inFGLaQsxMBapdh4Q  2012-07-09  bsSBYP1qg0SUFBKhepwbRg      5   \n",
       "9979  17Zp0inFGLaQsxMBapdh4Q  2012-07-29  CwUnOKZB_mt52mj2tDGq6w      4   \n",
       "9980  17Zp0inFGLaQsxMBapdh4Q  2012-09-19  CjuLT41htP9J2TyBwnXVcg      5   \n",
       "9981  17Zp0inFGLaQsxMBapdh4Q  2012-10-06  RL0KM9-84zJaQlWr9mSu9w      5   \n",
       "9982  17Zp0inFGLaQsxMBapdh4Q  2012-10-09  xRfRP6rWyJWVhjo6HrjbYg      5   \n",
       "9983  17Zp0inFGLaQsxMBapdh4Q  2012-10-17  XVnCENhm9DWRIzqY0ytt6Q      5   \n",
       "9984  17Zp0inFGLaQsxMBapdh4Q  2013-01-10  3yo1_cewEkeGIeiNoWCBMQ      1   \n",
       "9985  17Zp0inFGLaQsxMBapdh4Q  2013-01-10  -JV6tkWeU3ryqqDH9xTs4g      4   \n",
       "9986  17Zp0inFGLaQsxMBapdh4Q  2013-01-11  zfI1gQl8M4NnOneS9rKakw      5   \n",
       "9987  17Zp0inFGLaQsxMBapdh4Q  2013-01-18  79u58fMEqHtbV4UOYlc16w      5   \n",
       "9988  17Zp0inFGLaQsxMBapdh4Q  2013-01-27  gtEddQsz9A2TF2hMfyzA2w      5   \n",
       "9989  17Zp0inFGLaQsxMBapdh4Q  2013-01-30  uLtKeVPGDf2UlJFk6_JggA      5   \n",
       "9990  17Zp0inFGLaQsxMBapdh4Q  2013-02-12  A2tLzWKMwfFMtXwrJivR-Q      4   \n",
       "9991  17Zp0inFGLaQsxMBapdh4Q  2013-03-12  o4FKK_zduKrXdwV38boo2g      1   \n",
       "9992  17Zp0inFGLaQsxMBapdh4Q  2013-04-16  l0XDR2dfGj7ADtxcZ_CTaw      4   \n",
       "9993  17Zp0inFGLaQsxMBapdh4Q  2013-04-21  MpRLTeM-lPlZRK9Xx8LG4g      3   \n",
       "9994  17Zp0inFGLaQsxMBapdh4Q  2013-05-15  -GRZA-vkcEayxYUO7bzcvQ      5   \n",
       "9995  17Zp0inFGLaQsxMBapdh4Q  2013-06-06  WlWCCPfeNsCJzgPGiP8aPw      2   \n",
       "9996  17Zp0inFGLaQsxMBapdh4Q  2013-07-21  IpV51LS9QulwrF1_FY8t6g      5   \n",
       "9997  17Zp0inFGLaQsxMBapdh4Q  2013-08-07  3O7uvRf-2UuYysOrm73mZQ      5   \n",
       "9998  17Zp0inFGLaQsxMBapdh4Q  2013-08-24  x0m8b8eRQ7F-ou1qGIvN3Q      5   \n",
       "9999  17Zp0inFGLaQsxMBapdh4Q  2013-11-27  E_wzHqAWQgndMTQWsmnutA      5   \n",
       "\n",
       "                                                   text    type  \\\n",
       "0     dr. goldberg offers everything i look for in a...  review   \n",
       "1     Unfortunately, the frustration of being Dr. Go...  review   \n",
       "2     Dr. Goldberg has been my doctor for years and ...  review   \n",
       "3     Been going to Dr. Goldberg for over 10 years. ...  review   \n",
       "4     Got a letter in the mail last week that said D...  review   \n",
       "5     I don't know what Dr. Goldberg was like before...  review   \n",
       "6     Top notch doctor in a top notch practice. Can'...  review   \n",
       "7     Dr. Eric Goldberg is a fantastic doctor who ha...  review   \n",
       "8     I'm writing this review to give you a heads up...  review   \n",
       "9     I love Dr. Goldberg. Best doctor I've ever had...  review   \n",
       "10    All the food is great here. But the best thing...  review   \n",
       "11    We checked this place out this past Monday for...  review   \n",
       "12    Wing sauce is like water. Pretty much a lot of...  review   \n",
       "13    Cold cheap beer. Good bar food. Good service. ...  review   \n",
       "14    Decent range somewhat close to the city.  The ...  review   \n",
       "15    Owning a driving range inside the city limits ...  review   \n",
       "16    This place is absolute garbage...  Half of the...  review   \n",
       "17    Before I finally made it over to this range I ...  review   \n",
       "18    I drove by yesterday to get a sneak peak.  It ...  review   \n",
       "19    THANK YOU ROB! i truly appreciated all the hel...  review   \n",
       "20    After waiting for almost 30 minutes to trade i...  review   \n",
       "21    I visited this store several months ago to sim...  review   \n",
       "22    This place was DELICIOUS!!  My parents saw a r...  review   \n",
       "23    Can't miss stop for the best Fish Sandwich in ...  review   \n",
       "24    This place should have a lot more reviews - bu...  review   \n",
       "25    This place was very good. I found out about Em...  review   \n",
       "26    Old school.....traditional \"mom 'n pop\" qualit...  review   \n",
       "27    Seen this restaurant on 25 best places in Pitt...  review   \n",
       "28    Wonderful reuben.  Map shown on Yelp page is i...  review   \n",
       "29                                  Good fish sandwich.  review   \n",
       "...                                                 ...     ...   \n",
       "9970  I've been seeing Richard at Dean of Shadyside ...  review   \n",
       "9971  I died my very blonde hair with a box of brigh...  review   \n",
       "9972  My favorite salon. I've had two different styl...  review   \n",
       "9973  I discovered this place from a Living Daily De...  review   \n",
       "9974  I went into Dean of Shadyside salon to get my ...  review   \n",
       "9975  I've been going to Dean's for about a year.  I...  review   \n",
       "9976  Welcome to the Richard show!!! He is pompous. ...  review   \n",
       "9977  I recently took advantage of a Groupon deal th...  review   \n",
       "9978  I have been trying to achieve a specific hair ...  review   \n",
       "9979  My roommate and I refer to Courtney as \"Courtn...  review   \n",
       "9980  Richard gave me the BEST haircut of my life.  ...  review   \n",
       "9981  I just got my hair done at Dean of Shadyside S...  review   \n",
       "9982  Got my haircut from Valerie who was talented a...  review   \n",
       "9983  After a bad experience at MCN salon, I waited ...  review   \n",
       "9984  If you are into crooked haircuts and terrible ...  review   \n",
       "9985  Went there a few times now and am planning on ...  review   \n",
       "9986  I got a groupon for Dean of Shadyside for hair...  review   \n",
       "9987  As I began my post-college life (this was befo...  review   \n",
       "9988  Just a quick update from my first review a lit...  review   \n",
       "9989  I had my first Dean of Shadyside experience tw...  review   \n",
       "9990  I went to Dean of Shady side based on Yelp rev...  review   \n",
       "9991  Terrible! I purchased a groupon, but after all...  review   \n",
       "9992  Update on the pedicure: Today, Natalia did my ...  review   \n",
       "9993  I've been going to Deans for a couple years no...  review   \n",
       "9994  I've been to Dean of Shadyside on several occa...  review   \n",
       "9995  Just moved to Pittsburgh a week ago and I need...  review   \n",
       "9996  I was very impressed by the way this salon is ...  review   \n",
       "9997  This is where I always get my haircut and colo...  review   \n",
       "9998  Super happy with my experience --  stylist Ter...  review   \n",
       "9999  Love my hair!  I bought a Groupon for a cut an...  review   \n",
       "\n",
       "                     user_id                                 votes  \n",
       "0     Xqd0DzHaiyRqVH3WRG7hzg  {'cool': 1, 'funny': 0, 'useful': 2}  \n",
       "1     H1kH6QZV7Le4zqTRNxoZow  {'cool': 0, 'funny': 0, 'useful': 2}  \n",
       "2     zvJCcrpm2yOZrxKffwGQLA  {'cool': 1, 'funny': 0, 'useful': 1}  \n",
       "3     KBLW4wJA_fwoWmMhiHRVOA  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "4     zvJCcrpm2yOZrxKffwGQLA  {'cool': 1, 'funny': 0, 'useful': 2}  \n",
       "5     Qrs3EICADUKNFoUq2iHStA  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "6     jE5xVugujSaskAoh2DRx3Q  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "7     QnhQ8G51XbUpVEyWY2Km-A  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "8     tAB7GJpUuaKF4W-3P0d95A  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "9     GP-h9colXgkT79BW7aDJeg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "10    uK8tzraOp4M5u3uYrqIBXg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "11    I_47G-R2_egp7ME5u_ltew  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "12    PP_xoMSYlGr2pb67BbqBdA  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "13    JPPhyFE-UE453zA6K0TVgw  {'cool': 1, 'funny': 1, 'useful': 1}  \n",
       "14    fhNxoMwwTipzjO8A9LFe8Q  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "15    -6rEfobYjMxpUWLNxszaxQ  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "16    KZuaJtFindQM9x2ZoMBxcQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "17    H9E5VejGEsRhwcbOMFknmQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "18    ljwgUJowB69klaR8Au-H7g  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "19    JbAeIYc89Sk8SWmrBCJs9g  {'cool': 7, 'funny': 3, 'useful': 7}  \n",
       "20    l_szjd-ken3ma6oHDkTYXg  {'cool': 1, 'funny': 1, 'useful': 1}  \n",
       "21    zo_soThZw8eVglPbCRNC9A  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "22    LWbYpcangjBMm4KPxZGOKg  {'cool': 0, 'funny': 0, 'useful': 5}  \n",
       "23    m1FpV3EAeggaAdfPx0hBRQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "24    8fApIAMHn2MZJFUiCQto5Q  {'cool': 1, 'funny': 0, 'useful': 2}  \n",
       "25    uK8tzraOp4M5u3uYrqIBXg  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "26    6wvlM5L4_EroGXbnb_92xQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "27    345nDw0oC-jOcglqxmzweQ  {'cool': 1, 'funny': 0, 'useful': 2}  \n",
       "28    u9ULAsnYTdYH65Haj5LMSw  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "29    pdHC0oAcG7gNdhuFRAUu0Q  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "...                      ...                                   ...  \n",
       "9970  7r_tPMmXONGYnSH493xczQ  {'cool': 1, 'funny': 0, 'useful': 4}  \n",
       "9971  tFZAW-1oKyx0N-tbNptopA  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9972  bEyGMTOF8gcAwjNz_qXv-w  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "9973  -nYWT--flsvUsPshFR5uWw  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9974  sAvY_niYguFBVWMjn7aP1A  {'cool': 4, 'funny': 1, 'useful': 6}  \n",
       "9975  _ta-eVom-K35OpbtUKKW9A  {'cool': 1, 'funny': 1, 'useful': 1}  \n",
       "9976  4cW3iQW6JD1C8VxYP0eyXg  {'cool': 2, 'funny': 8, 'useful': 1}  \n",
       "9977  1YPFrlSsnab1jTtRdQEWjw  {'cool': 1, 'funny': 0, 'useful': 2}  \n",
       "9978  5wBR0yfNsjyeL3EODvasUQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9979  EzCamzloWgU2fngkoZLxnw  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9980  clgaCFcZ0-JnM7V9DGbOlg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9981  XyuwTWSPkqrWTnzivVUTtA  {'cool': 1, 'funny': 0, 'useful': 0}  \n",
       "9982  KELe6zeNFPPLuFLl4pbrCg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9983  aY3qz3FcTuVmisbzsfsqBQ  {'cool': 1, 'funny': 1, 'useful': 1}  \n",
       "9984  UaY1ZqjSya-DSLJMe5MJfQ  {'cool': 0, 'funny': 0, 'useful': 2}  \n",
       "9985  fWdZAtSjlqtt1tkDlVdnyg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9986  LRG-UTo3rzlnm1B_fjiSlg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9987  6Mflt7fworNLu031TDrDSA  {'cool': 1, 'funny': 1, 'useful': 3}  \n",
       "9988  1YPFrlSsnab1jTtRdQEWjw  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9989  lZpv9uSDKgyUxk1VPwyzDg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9990  Hqtb6mJAX5xl1LsVaKmI6g  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9991  KSqjrGkLrT9P2XxOAeKD2Q  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9992  fWdZAtSjlqtt1tkDlVdnyg  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9993  vFgVosI6MUPX8Y23hmuMXw  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "9994  iTJR6dVBds5FhGIXWy190w  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9995  1aU9rvo7j7uRzTR25RLuTA  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "9996  5TgsyucUcHqpmmgRJ51RQQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "9997  AjBhNARc8TdGpRbZWEe4wA  {'cool': 2, 'funny': 0, 'useful': 2}  \n",
       "9998  DxsrOue89OrCoe0m-vui_Q  {'cool': 0, 'funny': 0, 'useful': 1}  \n",
       "9999  l7skMgKS8KoaYgOnHVAusQ  {'cool': 0, 'funny': 0, 'useful': 0}  \n",
       "\n",
       "[10000 rows x 8 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "review_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"dr. goldberg offers everything i look for in a general practitioner.  he's nice and easy to talk to without being patronizing; he's always on time in seeing his patients; he's affiliated with a top-notch hospital (nyu) which my parents have explained to me is very important in case something happens and you need surgery; and you can get referrals to see specialists without having to see him first.  really, what more do you need?  i'm sitting here trying to think of any complaints i have about him, but i'm really drawing a blank.\""
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "review_df['text'][0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.feature_extraction.text import CountVectorizer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "bow_converter = CountVectorizer(token_pattern='(?u)\\\\b\\\\w+\\\\b')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<10000x26047 sparse matrix of type '<class 'numpy.int64'>'\n",
       "\twith 839352 stored elements in Compressed Sparse Row format>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = bow_converter.fit_transform(review_df['text'])\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "26047"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "words = bow_converter.get_feature_names()\n",
    "len(words)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['0', '00', '000', '0002', '00am', '00ish', '00pm', '01', '01am', '02']"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "words[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "bigram_converter = CountVectorizer(ngram_range=(2,2), token_pattern='(?u)\\\\b\\\\w+\\\\b')\n",
    "x2 = bigram_converter.fit_transform(review_df['text'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "346301"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bigrams = bigram_converter.get_feature_names()\n",
    "len(bigrams)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['zucchinis at',\n",
       " 'zucchinis took',\n",
       " 'zucchinis we',\n",
       " 'zuma over',\n",
       " 'zuppa di',\n",
       " 'zuppa toscana',\n",
       " 'zuppe di',\n",
       " 'zurich and',\n",
       " 'zz top',\n",
       " 'à la']"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bigrams[-10:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "trigram_converter = CountVectorizer(ngram_range=(3,3), token_pattern='(?u)\\\\b\\\\w+\\\\b')\n",
    "x3 = trigram_converter.fit_transform(review_df['text'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "847545"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trigrams = trigram_converter.get_feature_names()\n",
    "len(trigrams)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['0 10 definitely',\n",
       " '0 2 also',\n",
       " '0 25 per',\n",
       " '0 3 miles',\n",
       " '0 30 a',\n",
       " '0 30 everything',\n",
       " '0 30 lb',\n",
       " '0 35 tip',\n",
       " '0 5 curry',\n",
       " '0 5 pork']"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trigrams[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "26047 346301 847545\n"
     ]
    }
   ],
   "source": [
    "print (len(words), len(bigrams), len(trigrams))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib notebook\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\n",
       "window.mpl = {};\n",
       "\n",
       "mpl.get_websocket_type = function() {\n",
       "    if (typeof(WebSocket) !== 'undefined') {\n",
       "        return WebSocket;\n",
       "    } else if (typeof(MozWebSocket) !== 'undefined') {\n",
       "        return MozWebSocket;\n",
       "    } else {\n",
       "        alert('Your browser does not have WebSocket support.' +\n",
       "              'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
       "              'Firefox 4 and 5 are also supported but you ' +\n",
       "              'have to enable WebSockets in about:config.');\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
       "    this.id = figure_id;\n",
       "\n",
       "    this.ws = websocket;\n",
       "\n",
       "    this.supports_binary = (this.ws.binaryType != undefined);\n",
       "\n",
       "    if (!this.supports_binary) {\n",
       "        var warnings = document.getElementById(\"mpl-warnings\");\n",
       "        if (warnings) {\n",
       "            warnings.style.display = 'block';\n",
       "            warnings.textContent = (\n",
       "                \"This browser does not support binary websocket messages. \" +\n",
       "                    \"Performance may be slow.\");\n",
       "        }\n",
       "    }\n",
       "\n",
       "    this.imageObj = new Image();\n",
       "\n",
       "    this.context = undefined;\n",
       "    this.message = undefined;\n",
       "    this.canvas = undefined;\n",
       "    this.rubberband_canvas = undefined;\n",
       "    this.rubberband_context = undefined;\n",
       "    this.format_dropdown = undefined;\n",
       "\n",
       "    this.image_mode = 'full';\n",
       "\n",
       "    this.root = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(this.root);\n",
       "\n",
       "    this._init_header(this);\n",
       "    this._init_canvas(this);\n",
       "    this._init_toolbar(this);\n",
       "\n",
       "    var fig = this;\n",
       "\n",
       "    this.waiting = false;\n",
       "\n",
       "    this.ws.onopen =  function () {\n",
       "            fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
       "            fig.send_message(\"send_image_mode\", {});\n",
       "            fig.send_message(\"refresh\", {});\n",
       "        }\n",
       "\n",
       "    this.imageObj.onload = function() {\n",
       "            if (fig.image_mode == 'full') {\n",
       "                // Full images could contain transparency (where diff images\n",
       "                // almost always do), so we need to clear the canvas so that\n",
       "                // there is no ghosting.\n",
       "                fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
       "            }\n",
       "            fig.context.drawImage(fig.imageObj, 0, 0);\n",
       "        };\n",
       "\n",
       "    this.imageObj.onunload = function() {\n",
       "        this.ws.close();\n",
       "    }\n",
       "\n",
       "    this.ws.onmessage = this._make_on_message_function(this);\n",
       "\n",
       "    this.ondownload = ondownload;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_header = function() {\n",
       "    var titlebar = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
       "        return false;\n",
       "    });\n",
       "\n",
       "    function set_focus () {\n",
       "        canvas.focus();\n",
       "        canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    window.setTimeout(set_focus, 100);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items) {\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) {\n",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
       "    // which will in turn request a refresh of the image.\n",
       "    this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_message = function(type, properties) {\n",
       "    properties['type'] = type;\n",
       "    properties['figure_id'] = this.id;\n",
       "    this.ws.send(JSON.stringify(properties));\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.send_draw_message = function() {\n",
       "    if (!this.waiting) {\n",
       "        this.waiting = true;\n",
       "        this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
       "    }\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    var format_dropdown = fig.format_dropdown;\n",
       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
       "    fig.ondownload(fig, format);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
       "    var size = msg['size'];\n",
       "    if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
       "        fig._resize_canvas(size[0], size[1]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\n",
       "    x0 = Math.floor(x0) + 0.5;\n",
       "    y0 = Math.floor(y0) + 0.5;\n",
       "    x1 = Math.floor(x1) + 0.5;\n",
       "    y1 = Math.floor(y1) + 0.5;\n",
       "    var min_x = Math.min(x0, x1);\n",
       "    var min_y = Math.min(y0, y1);\n",
       "    var width = Math.abs(x1 - x0);\n",
       "    var height = Math.abs(y1 - y0);\n",
       "\n",
       "    fig.rubberband_context.clearRect(\n",
       "        0, 0, fig.canvas.width, fig.canvas.height);\n",
       "\n",
       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
       "    // Updates the figure title.\n",
       "    fig.header.textContent = msg['label'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
       "    var cursor = msg['cursor'];\n",
       "    switch(cursor)\n",
       "    {\n",
       "    case 0:\n",
       "        cursor = 'pointer';\n",
       "        break;\n",
       "    case 1:\n",
       "        cursor = 'default';\n",
       "        break;\n",
       "    case 2:\n",
       "        cursor = 'crosshair';\n",
       "        break;\n",
       "    case 3:\n",
       "        cursor = 'move';\n",
       "        break;\n",
       "    }\n",
       "    fig.rubberband_canvas.style.cursor = cursor;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_message = function(fig, msg) {\n",
       "    fig.message.textContent = msg['message'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
       "    // Request the server to send over a new figure.\n",
       "    fig.send_draw_message();\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
       "    fig.image_mode = msg['mode'];\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Called whenever the canvas gets updated.\n",
       "    this.send_message(\"ack\", {});\n",
       "}\n",
       "\n",
       "// A function to construct a web socket function for onmessage handling.\n",
       "// Called in the figure constructor.\n",
       "mpl.figure.prototype._make_on_message_function = function(fig) {\n",
       "    return function socket_on_message(evt) {\n",
       "        if (evt.data instanceof Blob) {\n",
       "            /* FIXME: We get \"Resource interpreted as Image but\n",
       "             * transferred with MIME type text/plain:\" errors on\n",
       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
       "             * to be part of the websocket stream */\n",
       "            evt.data.type = \"image/png\";\n",
       "\n",
       "            /* Free the memory for the previous frames */\n",
       "            if (fig.imageObj.src) {\n",
       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
       "                    fig.imageObj.src);\n",
       "            }\n",
       "\n",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
       "            fig.imageObj.src = evt.data;\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        var msg = JSON.parse(evt.data);\n",
       "        var msg_type = msg['type'];\n",
       "\n",
       "        // Call the  \"handle_{type}\" callback, which takes\n",
       "        // the figure and JSON message as its only arguments.\n",
       "        try {\n",
       "            var callback = fig[\"handle_\" + msg_type];\n",
       "        } catch (e) {\n",
       "            console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
       "            return;\n",
       "        }\n",
       "\n",
       "        if (callback) {\n",
       "            try {\n",
       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
       "                callback(fig, msg);\n",
       "            } catch (e) {\n",
       "                console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
       "            }\n",
       "        }\n",
       "    };\n",
       "}\n",
       "\n",
       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
       "mpl.findpos = function(e) {\n",
       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
       "    var targ;\n",
       "    if (!e)\n",
       "        e = window.event;\n",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\n",
       "\n",
       "    return {\"x\": x, \"y\": y};\n",
       "};\n",
       "\n",
       "/*\n",
       " * return a copy of an object with only non-object keys\n",
       " * we need this to avoid circular references\n",
       " * http://stackoverflow.com/a/24161582/3208463\n",
       " */\n",
       "function simpleKeys (original) {\n",
       "  return Object.keys(original).reduce(function (obj, key) {\n",
       "    if (typeof original[key] !== 'object')\n",
       "        obj[key] = original[key]\n",
       "    return obj;\n",
       "  }, {});\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.mouse_event = function(event, name) {\n",
       "    var canvas_pos = mpl.findpos(event)\n",
       "\n",
       "    if (name === 'button_press')\n",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "\n",
       "    /* This prevents the web browser from automatically changing to\n",
       "     * the text insertion cursor when the button is pressed.  We want\n",
       "     * to control all of the cursor setting manually through the\n",
       "     * 'cursor' event from matplotlib */\n",
       "    event.preventDefault();\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    // Handle any extra behaviour associated with a key event\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.key_event = function(event, name) {\n",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\n",
       "\n",
       "    value += 'k';\n",
       "    value += event.which.toString();\n",
       "\n",
       "    this._key_event_extra(event, name);\n",
       "\n",
       "    this.send_message(name, {key: value,\n",
       "                             guiEvent: simpleKeys(event)});\n",
       "    return false;\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
       "    if (name == 'download') {\n",
       "        this.handle_save(this, null);\n",
       "    } else {\n",
       "        this.send_message(\"toolbar_button\", {name: name});\n",
       "    }\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
       "    this.message.textContent = tooltip;\n",
       "};\n",
       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to  previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
       "\n",
       "mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
       "\n",
       "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
       "    // object with the appropriate methods. Currently this is a non binary\n",
       "    // socket, so there is still some room for performance tuning.\n",
       "    var ws = {};\n",
       "\n",
       "    ws.close = function() {\n",
       "        comm.close()\n",
       "    };\n",
       "    ws.send = function(m) {\n",
       "        //console.log('sending', m);\n",
       "        comm.send(m);\n",
       "    };\n",
       "    // Register the callback with on_msg.\n",
       "    comm.on_msg(function(msg) {\n",
       "        //console.log('receiving', msg['content']['data'], msg);\n",
       "        // Pass the mpl event to the overriden (by mpl) onmessage function.\n",
       "        ws.onmessage(msg['content']['data'])\n",
       "    });\n",
       "    return ws;\n",
       "}\n",
       "\n",
       "mpl.mpl_figure_comm = function(comm, msg) {\n",
       "    // This is the function which gets called when the mpl process\n",
       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
       "\n",
       "    var id = msg.content.data.id;\n",
       "    // Get hold of the div created by the display call when the Comm\n",
       "    // socket was opened in Python.\n",
       "    var element = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\n",
       "\n",
       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
       "    // web socket which is closed, not our websocket->open comm proxy.\n",
       "    ws_proxy.onopen();\n",
       "\n",
       "    fig.parent_element = element.get(0);\n",
       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
       "    if (!fig.cell_info) {\n",
       "        console.error(\"Failed to find cell for figure\", id, fig);\n",
       "        return;\n",
       "    }\n",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\n",
       "\n",
       "    // Update the output cell to use the data from the current canvas.\n",
       "    fig.push_to_output();\n",
       "    var dataURL = fig.canvas.toDataURL();\n",
       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
       "    // the notebook keyboard shortcuts fail.\n",
       "    IPython.keyboard_manager.enable()\n",
       "    $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n",
       "    fig.close_ws(fig, msg);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.close_ws = function(fig, msg){\n",
       "    fig.send_message('closing', msg);\n",
       "    // fig.ws.close()\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
       "    // Turn the data on the canvas into data in the output cell.\n",
       "    var dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.updated_canvas_event = function() {\n",
       "    // Tell IPython that the notebook contents must change.\n",
       "    IPython.notebook.set_dirty(true);\n",
       "    this.send_message(\"ack\", {});\n",
       "    var fig = this;\n",
       "    // Wait a second, then push the new image to the DOM so\n",
       "    // that it is saved nicely (might be nice to debounce this).\n",
       "    setTimeout(function () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\n",
       "    for(var toolbar_ind in mpl.toolbar_items){\n",
       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
       "\n",
       "        if (!name) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('tabindex', 0)\n",
       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
       "    // off when our div gets focus\n",
       "\n",
       "    // location in version 3\n",
       "    if (IPython.notebook.keyboard_manager) {\n",
       "        IPython.notebook.keyboard_manager.register_events(el);\n",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._key_event_extra = function(event, name) {\n",
       "    var manager = IPython.notebook.keyboard_manager;\n",
       "    if (!manager)\n",
       "        manager = IPython.keyboard_manager;\n",
       "\n",
       "    // Check for shift+enter\n",
       "    if (event.shiftKey && event.which == 13) {\n",
       "        this.canvas_div.blur();\n",
       "        event.shiftKey = false;\n",
       "        // Send a \"J\" for go to next cell\n",
       "        event.which = 74;\n",
       "        event.keyCode = 74;\n",
       "        manager.command_mode();\n",
       "        manager.handle_keydown(event);\n",
       "    }\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_save = function(fig, msg) {\n",
       "    fig.ondownload(fig, null);\n",
       "}\n",
       "\n",
       "\n",
       "mpl.find_output_cell = function(html_output) {\n",
       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
       "    // IPython event is triggered only after the cells have been serialised, which for\n",
       "    // our purposes (turning an active figure into a static one), is too late.\n",
       "    var cells = IPython.notebook.get_cells();\n",
       "    var ncells = cells.length;\n",
       "    for (var i=0; i<ncells; i++) {\n",
       "        var cell = cells[i];\n",
       "        if (cell.cell_type === 'code'){\n",
       "            for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
       "                var data = cell.output_area.outputs[j];\n",
       "                if (data.data) {\n",
       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
       "                    data = data.data;\n",
       "                }\n",
       "                if (data['text/html'] == html_output) {\n",
       "                    return [cell, data, j];\n",
       "                }\n",
       "            }\n",
       "        }\n",
       "    }\n",
       "}\n",
       "\n",
       "// Register the function which deals with the matplotlib target/channel.\n",
       "// The kernel may be null if the page has been refreshed.\n",
       "if (IPython.notebook.kernel != null) {\n",
       "    IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set_style(\"darkgrid\")\n",
    "counts = [len(words), len(bigrams), len(trigrams)]\n",
    "plt.plot(counts, color='cornflowerblue')\n",
    "plt.plot(counts, 'bo')\n",
    "plt.margins(0.1)\n",
    "plt.xticks(range(3), ['unigram', 'bigram', 'trigram'])\n",
    "plt.tick_params(labelsize=14)\n",
    "plt.title('Number of ngrams in the first 10,000 reviews of the Yelp dataset', {'fontsize':16})\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
